私は、製品の名前とその販売数を別々の2つのテーブルから取得しようとしています。SQL文の記述数が
私のテーブルはこのような何かを見て:
BOOK
Book_ID | Book_Title | Book_Author
SOLD
Transaction_ID | Book_ID | Customer_ID
を私は次のクエリ
SELECT b.Book_Title, COUNT(s.Book_ID) FROM Book b, Sold s
WHERE b.Book_ID = s.Book_ID
GROUP BY b.Book_Title;
から私が望む結果のほとんどを得ることができますしかし、これは少なくとも一つの販売の製品を表示します。私はすべての製品を表示したいと思います。売り上げがなかったらゼロを表示するだけです。私はこのような何かをいじりてきた:
SELECT b.Book_Title,
COUNT(CASE WHEN s.Book_ID IS NULL THEN 0 ELSE s.Book_ID END)
FROM Book b, Sold s WHERE b.Book_ID = s.Book_ID GROUP BY Book_Title;
しかしWHERE
句は、1枚の以上の売り上げを持つものに結果を制限しています。
誰もこれを回避する方法を提案できますか?私はOracle 10gを使用しています。
おかげ
ありがとうございました:) –
COUNT()は実際には非ヌル値の数を数えていることに注意してください。 –