Tôi đang cố gắng lấy tên sản phẩm và số lượng bán hàng của sản phẩm từ hai bảng riêng biệt.TÌNH TRẠNG TRƯỜNG HỢP SQL trong COUNT CLAUSE
bảng của tôi giống như thế này:
BOOK
Book_ID | Book_Title | Book_Author
SOLD
Transaction_ID | Book_ID | Customer_ID
tôi có thể nhận được hầu hết các kết quả tôi muốn từ truy vấn sau đây
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;
Tuy nhiên, điều này chỉ hiển thị sản phẩm với ít nhất một bán. Tôi muốn hiển thị tất cả các sản phẩm, chỉ cần hiển thị số không nếu không có doanh số bán hàng nào xảy ra. Tôi đã rối tung xung quanh với một cái gì đó như thế này:
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;
Nhưng mệnh đề WHERE
được hạn chế kết quả cho những người thân với 1 hoặc bán hàng nhiều hơn.
Có ai có thể đề xuất một cách để giải quyết vấn đề này không? Tôi đang sử dụng Oracle 10g.
Cảm ơn
Cảm ơn, đã thực hiện công việc :) –
Lưu ý rằng COUNT() thực sự đang đếm số giá trị không null, đó là lý do tại sao tính năng này hoạt động. –