{Oracle} Deux COUNT dans une seule requête
EvilJajuka
-
Christounet Messages postés 1266 Statut Membre -
Christounet Messages postés 1266 Statut Membre -
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 :
Maintenant, je ne sais plus trop quoi faire pour pouvoir afficher mes 2 colonnes. J'ai essayé ceci, mais j'obtiens seulement une colonne (articlesImpopulaires) avec 2 lignes au lieu de 2 colonnes avec une lignes.
La sortie devrait être comme ça :
mais moi j'obtiens ça :
Merci à l'avance :)
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
Maintenant, je ne sais plus trop quoi faire pour pouvoir afficher mes 2 colonnes. J'ai essayé ceci, mais j'obtiens seulement une colonne (articlesImpopulaires) avec 2 lignes au lieu de 2 colonnes avec une lignes.
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)
La sortie devrait être comme ça :
NOMBREPOPULAIRES NOMBREIMPOPULAIRES
-------------- -----------------
3 4
mais moi j'obtiens ça :
NOMBREIMPOPULAIRES
------------------
3
4
Merci à l'avance :)
A voir également:
- {Oracle} Deux COUNT dans une seule requête
- Comment faire deux colonnes indépendantes dans word - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Deux ecran pc - Guide
- Nombre de jours entre deux dates excel - Guide
- Application se ferme toute seule android - Guide
1 réponse
Bonjour,
Le code suivant devrait faire ce que tu veux
J'ai remplacé UNION par une virgule
J'ai pas testé, à toi de voir.
A plus
Le code suivant devrait faire ce que tu veux
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