SQLでテーブルを結合した結果を取り出し
SQLで以下の様なテーブルがあります。
tableA、tableB、tableCを使って、IDとNUMとRANKを結合し、
ID毎に、
RANKが1つでもあったら、”○”でその数を
RANKが1つもなかったら、”×”で0を
取り出したい。
「oracle10g」です。
-- tableA
ID,NUM,NAME,・・・・・
000001,001,
000001,002,
000001,003,
000002,001,
000003,001,
000003,002,
-- tableB
ID,NUM,RANK
000001,001,A
000001,001,B
000001,001,C
000001,002,A
000001,003,C
000002,001,B
000002,002,B
000003,001,A
000003,002,A
000003,002,C
--tableC
RANK,NAME
A,
B,
C,
結果として、
ID,RANK,判定,個数
000001,A,○,2
000001,B,○,1
000001,C,○,2
000002,A,×,0
000002,B,○,2
000003,A,○,2
000003,B,×,0
000003,C,○,1
を得たいです。
どのようなSQLにしたらよいか、よろしくお願いします。
お礼
よかったよかったとなってしまい、すっかり見ておらず、反応がだいぶ遅くなりました。 確かに、流してみたら期待した結果が得られました。 単純にSUMの中でのCase文の動作の理解が足りないようですね。。。MAXでまとめられるか!?とかやってるあたり。 投稿当時を思い出しながら、もうちょっと確認してみようと思います。 本当に、ありがとうございました。