|
|
|
|
Bonjour,
Voilà mon problème, pour un cours, je dois écrire une requête SQL qui renvoie 2 colonnes. La première colonne affichera le nombre d'articles qui ont été commandé 6+ fois et la deuxième colonnes, les articles qui ont été commandé moins de 2 fois.
La requête qui permet d'avoir le nombre de fois que chaque article à été commandé est la suivante :
SELECT noArticle, CASE WHEN SUM(quantite) IS NULL THEN 0 ELSE SUM(quantite) END AS quantiteTotale FROM Article NATURAL LEFT OUTER JOIN LigneCommande GROUP BY noArticle
SELECT COUNT(*) AS articlesImpopulaires
FROM
(SELECT noArticle
FROM Article NATURAL LEFT OUTER JOIN LigneCommande
GROUP BY noArticle
HAVING CASE WHEN SUM(quantite) IS NULL THEN 0 ELSE SUM(quantite) END < 2)
UNION
SELECT COUNT(*) AS articlesPopulaires
FROM
(SELECT noArticle FROM Article NATURAL LEFT OUTER JOIN LigneCommande GROUP BY noArticle
HAVING SUM(quantite) > 5)
NOMBREPOPULAIRES NOMBREIMPOPULAIRES
-------------- -----------------
3 4
NOMBREIMPOPULAIRES
------------------
3
4
Configuration: Windows Vista Firefox 3.5.3
Bonjour,
SELECT COUNT(*) AS articlesImpopulaires FROM (SELECT noArticle FROM Article NATURAL LEFT OUTER JOIN LigneCommande GROUP BY noArticle HAVING CASE WHEN SUM(quantite) IS NULL THEN 0 ELSE SUM(quantite) END < 2) , SELECT COUNT(*) AS articlesPopulaires FROM (SELECT noArticle FROM Article NATURAL LEFT OUTER JOIN LigneCommande GROUP BY noArticle HAVING SUM(quantite) > 5) J'ai remplacé UNION par une virgule J'ai pas testé, à toi de voir. A plus On se donne des souvenirs quand on se quitte. (Marcel Achard) |