[SQL et Access]

Yoskopolite Messages postés 92 Statut Membre -  
Frappe Misere Messages postés 2702 Statut Membre -
Bonjour à tous,

Je souhaite faire une requête permettant de compter le nombre d'enregistrement que j'ai dans chacun de mes catégories d'enregistrement. J'effectue donc cette requête :

SELECT tableData.categorie, Count(*) AS nombre
FROM table
GROUP BY tableData.categorie;

Mon problème est que si une catégorie ne comprend aucun enregistrement, la requête ne retourne rien, alors que j'aimerais qu'elle retourne "0" (zéro).
(J'ai une table "tableCategories" qui contient la liste de toutes mes catégories, mais que je n'utilise pas dans cette requête... Je suppose que je devrais l'utiliser pour arriver à mes fins mais je ne sais pas comment...)

D'avance merci pour vos réponses.

PS : cette requête sert à alimenter un état (de type tableau) dans Access.
A voir également:

3 réponses

Frappe Misere Messages postés 2702 Statut Membre 568
 
tu ne peux pas utiliser * pour compter ; prends n'importe quelle colonne et utilise nz pour éviter les problemes dus à la valeur null
0
Yoskopolite Messages postés 92 Statut Membre 8
 
Merci du conseil. Cependant, mon problème n'est pas là (désolé de pas avoir été assez clair). En effet, certaines catégories sont présentes dans la table "tableCategories" mais n'ont aucun enregistrement correspondant dans la table "tableData". Prenons un exemple concret pour être plus clair :

Voici le contenu de la table "tableCategorie" :
[N°] - [nom]
1 - cat1
2 - cat2
3 - cat3

et voici un exemple de contenu de la table "tableData" :
[N°] - [categorie] -
1 - cat2
2 - cat1
3 - cat2
4 - cat1
5 - NULL

Je souhaiterais que ma requête retire de tout ça :
[catégorie] - [nombre]
cat1 - 2 (il y a 2 éléments de la catégorie 1)
cat2 - 2 (il y a 2 éléments de la catégorie 2)
cat3 - 0 (il y a 0 élément de la catégorie 3)

Alors que ta solution (si j'ai bien compris) me donnerais plutôt :
[catégorie] - [nombre]
cat1 - 2
cat2 - 2
NULL - 1

De plus, j'ai essayé de faire un Count(tableData.categorie) au lieu du Count(*), mais ça ne fonctionne pas : ça ne me retourne plus rien
edit : ah si, ça, ça marche, désolé ^^'
0
Frappe Misere Messages postés 2702 Statut Membre 568
 
dans ta requete avec le count, crée une liaison entre les table entre [nom] de la premiere table et [categorie] de la 2e
ça devrait solutionne rton probleme.
0