The correlated query was not accepted in the select statement. However, I modified your original UPDATE query, as follows, and it did execute, and passed the proper quantity of rows for the first zip/crrt combination, only. The rows were not updated. It counted correctly, but did not change the values.
sql> UPDATE tmp_addresses set segment='xx' where rowid in ( select x2.rowid from tmp_addresses x2 where x2.zip=zip and x2.crrt=crrt order by CASE WHEN x2.version_id = '0060' THEN 0 WHEN x2.version_id = '0064' THEN 2 WHEN x2.version_id = '0061' THEN 3 ELSE 99 END ASC limit ifnull( ( select net_non_pieces from crrt_net_non net where net.zip=zip and net.crrt=crrt ), 0) ) [2015-10-15 06:54:18] *42 row(s)* affected in 189ms I have not yet attempted your most recent suggestion. I will get to that some time today. On Wed, Oct 14, 2015 at 9:21 PM, Igor Tandetnik <igor at tandetnik.org> wrote: > On 10/14/2015 9:29 PM, Don V Nielsen wrote: > >> But I am having problems with the LIMIT statement. It throws an exception >> no matter what table alias is used: X or x2. It says "no such column". >> > > Ah, interesting. LIMIT clause doesn't appear to allow correlated > subqueries; only self-contained expressions. Here goes that idea. > > Something like this should work: > > select X.* > from addresses X join crrt_net_non_pieces using (zip, crrt) > where net_non_pieces > ( > select count(*) from addresses x2 > where X.zip=x2.zip and X.crrt=x2.crrt and > (x2.version_id < X.version_id or (x2.version_id = X.version_id and > x2.rowid < X.rowid)) > ); > > I took the liberty to simplify the ordering expression, for purposes of > exposition (it's very long and would need to be repeated four times). > Replace all occurrences of T.version_id with your CASE clause, calculated > against table T. Also, I'm breaking ties by rowid; your original problem > statement is underspecified unless there's a total order on Addresses. > > -- > Igor Tandetnik > > _______________________________________________ > sqlite-users mailing list > sqlite-users at mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >