J'essaie d'obtenir le nom d'un produit et son nombre de ventes à partir de deux tables distinctes.ÉNONCÉ DE CAS DANS COUNT CLAUSE
Mes tableaux ressemblent à ceci:
BOOK
Book_ID | Book_Title | Book_Author
SOLD
Transaction_ID | Book_ID | Customer_ID
Je peux obtenir la plupart des résultats que je veux de la requête suivante
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;
Cependant, cela ne affiche des produits avec au moins une vente. Je voudrais afficher tous les produits, montrant simplement un zéro si aucune vente n'a eu lieu. J'ai été déconner avec quelque chose comme ceci:
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;
Mais la clause WHERE
limite les résultats à ceux avec 1 ou plus de ventes.
Quelqu'un peut-il suggérer un moyen de contourner ce problème? J'utilise Oracle 10g.
Merci
Merci, cela a fait le travail :) –
Notez que COUNT() compte réellement le nombre de valeurs non nulles, ce qui explique pourquoi cela fonctionne. –