Bonjour,
J’ai un problème dans la réalisation d’une requête SQL. Je voudrais compter le nombre d’éléments par année et par type de produit.
Ex :
J’ai le tableau suivant :
Année produit
2006 Produit1
2006 Produit2
2006 Produit2
2006 Produit2
2006 Produit3
2006 Produit3
2006 Produit3
2007 Produit1
2007 Produit1
2007 Produit1
2007 Produit2
2007 Produit3
2007 Produit3
2007 Produit3
2008 Produit1
2008 Produit1
2008 Produit2
2008 Produit2
2008 Produit2
2008 Produit2
2008 Produit3
2009 Produit3
2009 Produit1
2009 Produit2
2009 Produit2
2009 Produit2
2009 Produit3
2009 Produit3
Je voudrais avoir le résultat suivant :
Année Produit Nombre_produit
2006 Produit1 1
2006 Produit2 3
2006 Produit3 3
2007 Produit1 3
2007 Produit2 1
2007 Produit3 3
2008 Produit1 2
2008 Produit2 4
2008 Produit3 1
2009 Produit1 1
2009 Produit2 3
2009 Produit3 3
Lorsque j’exécute ma requête, cela fonctionne lorsque je ne sélectionne qu’une date dans la condition « where » (cf ma requête ci-dessous).
Par contre, quand je mets plusieurs dates, il y a des erreurs dans les résultats : j’ai l’impression que la requête fait automatiquement la somme des count sur les 3 années au lieu de seulement donner le comptage sur une année.
Voici le résultat obtenu en erreur :
Annee Produit Nombre_produit
2006 Produit1 7
2006 Produit2 11
2006 Produit3 10
2007 Produit1 7
2007 Produit2 11
2007 Produit3 10
2008 Produit1 7
2008 Produit2 11
2008 Produit3 10
2009 Produit1 7
2009 Produit2 11
2009 Produit3 10
cf mon code ci-dessous
Quelqu'un a-t-il une idée de mon erreur ? Je me demande si il ne me serait pas nécessaire de faire une sous requête...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 create table rejets as select distinct annee, produit, count(produit) as Nombre_produit from class1 where annee = 2008 GROUP BY produit ORDER BY annee
nb: dans le code j'ai sélectionné l'année 2008, mais j'aimerais justement utiliser le code sur plusieurs année ex: where annee in(2005, 2006, 2007, 2008)...
Si quelqu'un pouvait m'aider, ce serait vraiment sympa !
Merci d'avance
Partager