Estoy tratando de obtener el nombre de un producto y su número de ventas de dos tablas separadas.SQL DECLARACIÓN DE CASO en COUNT CLAUSTA
Mis tablas tienen el siguiente aspecto:
BOOK
Book_ID | Book_Title | Book_Author
SOLD
Transaction_ID | Book_ID | Customer_ID
puedo conseguir la mayor parte de los resultados que quiero de la siguiente consulta
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;
Sin embargo, esto sólo muestra los productos con al menos una venta. Me gustaría mostrar todos los productos, simplemente mostrando un cero si no se han producido ventas. He estado jugando con algo como esto:
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;
Pero la cláusula WHERE
está limitando los resultados a los que tienen 1 o más ventas.
¿Alguien puede sugerir una forma de evitar esto? Estoy usando Oracle 10g.
Gracias
Gracias, eso hizo el trabajo :) –
Tenga en cuenta que COUNT() en realidad está contando el número de valores no nulos, por lo que esto funciona. –