我正在尝试从两个单独的表中获取产品的名称及其销售数量。
我的表看起来像这样:
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。
谢谢