• ベストアンサー

SQLで「結果同士」の比較をするには?

SQLで「結果同士」の比較をするにはどのように記述したらいいのでしょうか? Ora10gです。 例えば、構成としてAテーブルは KY項目1_____KY項目2_____Int型データ とします Bテーブルも KY項目1_____KY項目2・・・ といったデータ構成だとします。 Bテーブルのデータを group by KY項目1, KY項目2でカウントした時の件数とAテーブルのInt型データの数が一致しているか比較したいのですが、どのようなSQLでできますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

SELECT Aテーブル.*,T.CNT FROM Aテーブル LEFT JOIN ( SELECT Bテーブル.KEY1,Bテーブル.KEY2,COUNT(*) CNT FROM Bテーブル GROUP BY Bテーブル.KEY1,Bテーブル.KEY2 ) T ON Aテーブル.KEY1=T.KEY1 AND Aテーブル.KEY2=T.KEY2 とりあえず、Aテーブル全部のレコードを出力するようにしました。 件数が一致するものは出力しないなら WHERE Aテーブル.Int型データ2 <> T.CNT OR T.KEY1 IS NULL を追加してください。

mr-r00
質問者

お礼

いつもいつもありがとうございます。 お陰様で参考になり実現できました。 感謝しております。 実現できたことでSQLの要件に不備があったことがわかりました・・・ 大変申し訳ありませんが、ヒントなどいただけると幸いです。

関連するQ&A