• 締切済み

オラクルSQL文のCOUNT関数について

SELECT COUNT (*) AS XXXX FROM AAA,BBB WHERE AAA.AAA = BBB.BBB AND ・・・・ ・・・・ やりたい事は、AAAテーブルだけのカウントをしたいのですが 現状、BBBのカウントもしてしまいます。 BBBはWHEREでAAAに対して比較だけを 行いたいのですが、この場合どうやったらいいのでしょうか。

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

> BBBはWHEREでAAAに対して比較だけを行いたい この一文から推測すると、結合しているのが間違いな気がします。 ↓の様な形になるべきなのかも知れません。 SELECT COUNT (*) AS XXXX FROM AAA WHERE AAA.AAA IN (SELECT BBB FROM BBB WHERE 何らかの条件) AND ・・・ 他の方も指摘されている通り、もう少し情報を出して頂かないと正確な回答をすることは無理ですね。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

> BBBを結合しなくても、BBBとAAAが比較できるのなら > それでいいのですが、そのやり方がわからない状況です・・・。 具体的にどんなテーブル構成であり,具体的にどんなSELECT文なのか,その提示なしに回答できる内容ではないです。 どうしてもAAAやBBBのように秘匿したまま質問せねばならないのなら,このような匿名Q&Aサイトで解決策が得られるかどうかは期待薄だと思います。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> BBBはWHEREでAAAに対して比較だけを > 行いたいのですが、この場合どうやったらいいのでしょうか。 なんのためにBBBを結合するのか不明ですが、 結合のためのWhere条件が不足してませんかね? 下手すると、AAAテーブルの実レコード数より大きな値になるかも。 AAA.AAA がユニークな値で間違いないなら、 COUNT (distinct aaa.aaa) AS XXXX にしてみるとか。

biga-
質問者

補足

> なんのためにBBBを結合するのか不明ですが、 > 結合のためのWhere条件が不足してませんかね? > 下手すると、AAAテーブルの実レコード数より大きな値になるかも。 まさに、実レコード数より大きな値が返ってきています。 BBBを結合しなくても、BBBとAAAが比較できるのなら それでいいのですが、そのやり方がわからない状況です・・・。