Simon - thanks v. much.  Makes complete sense now - and it does precisely
what I wanted. :)
{Appreciate the tip on the index - performance hasn't been an issue yet but
I'm sure I'll end up using it.}

On Wed, Nov 17, 2010 at 12:51 PM, Simon Slavin <slav...@bigfraud.org> wrote:

>
> On 16 Nov 2010, at 3:29pm, Amit Chaudhuri wrote:
>
> > The approach I tried was to perform 2 sequential updates using first the
> > fixed call source table then the mobile. I tried to restrict the update
> to
> > rows in target where the class of call (fixed or mobile) corresponded to
> the
> > content of the source.
> >
> > What seems to happen is that the second update blats the updates
> performed
> > by the first: I can have either fixed results or mobile results but not
> > both.
>
> You /nearly/ got it right.  Your commands were
>
>        update target set cost = (select cost from source1 where
> source1.Aend=target.Aend and source1.type=target.type and FM='Fixed');
>
>        update target set cost = (select cost from source2 where
> source2.Aend=target.Aend and source2.type=target.type and FM='Mobile');
>
> Your problem is that you have the clause about FM in the wrong part.  The
> FM column is in the table you're updating, not in the source.  So the clause
> about FM should be part of the UPDATE command, not part of the SELECT.  Your
> code should look more like
>
>        UPDATE target SET cost = (SELECT cost FROM source1 WHERE
> source1.Aend=target.Aend AND source1.type=target.type) WHERE FM='Fixed';
>
>        UPDATE target SET cost = (SELECT cost FROM source2 WHERE
> source2.Aend=target.Aend AND source2.type=target.type) WHERE FM='Mobile';
>
> I haven't tried the above code but I hope it might point you in the right
> direction.
>
> To make things fast, don't forget to index your source* tables on
> (Aend,type) or something like that.
>
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to