Valcha Posted January 30, 2008 Report Posted January 30, 2008 Sveiki! Tātad man ir tabula, kurā ieraksti pēc koda var atkārtoties. Man pie gadījuma, ja atrodas vairāk kā 1 ieraksts, attiecīgajam kodam ir jāatlasa tikai pēdējā vērtība (lielākais id). Problēma bija tāda, ka nevarēju izmantot order by subkverijā, jo sāk klaigāt par right parenthesis. Tabulas piemērs: id | kods | vel_dati 1|k1|aaa 2|k1|bbb 3|k2|ccc 4|k3|ddd Atlases rezultātam vajadzētu būt 2|k1|bbb 3|k2|ccc 4|k3|ddd Mēģināju atlasīt sekojoši: SELECT a.kods, count(a.kods), (select b.id from tabula b where b.kods=a.kods and rownum=1 order by b.id desc) id FROM tabula a group by a.kods order by kods desc Neļauj izmantot order by subkverijā, lai pielasītu pēdējo vērtību. Ja nu kāds vēlas padalīties DB zināšanās un palīdzēt ar atlasi, paldies.
andrisp Posted January 30, 2008 Report Posted January 30, 2008 subkverijs var atgriezt tikai vienu vērtību. Nezinu kā Oraclī, bet MySQL varētu izmantot LIMIT 1.
Aleksejs Posted January 30, 2008 Report Posted January 30, 2008 atlasi: max(b.id) from tabula b where b.kods=a.kods and rownum=1
Recommended Posts