質問: oracle10gのsql文についての質問です。 oracle10gのsql文についての質問です。 [a]テーブルに code(key) name と、フィールドがあります。 a name-a b name-b c name-c d name-d e name-e と、データが入っています。 [b]テーブルに code(key) line(key) biko と、フィールドがあります。 a 1 biko-a-1 a 2 a 3 biko-a-3 b 1 b 2 b 3 c 1 c 2 biko-b-2 c 3 d 1 biko-d-1 d 2 biko-d-2 d 3 biko-d-3 e 1 e 2 e 3 biko-e-3 と、データが入っています。 結果が code(key) line(key) biko と、フィールドがあります。 a 1 biko-a-1 a 2 biko-a-1 a 3 biko-a-1 b 1 (null) b 2 (null) b 3 (null) c 1 biko-b-2 c 2 biko-b-2 c 3 biko-b-2 d 1 biko-d-1 d 2 biko-d-1 d 3 biko-d-1 e 1 biko-e-3 e 2 biko-e-3 e 3 biko-e-3 と、したいのです。 つまり、[b]テーブルのlineが一番小さいbikoが欲しいのです。 色々と考えてみましたが、解りません。 宜しくお願い致します。
回答: select x.code,x.line,y.biko from b x, (select code,biko,row_number() over(partition by code order by line) r from b where not(biko is null)) y where x.code=y.code(+) and y.r(+)=1; テーブルaの使い道が書かれていないので、全く使わない。