Total par grade

Résolu
cs_bouf Messages postés 114 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 20 mars 2008 - 19 févr. 2008 à 09:10
cs_bouf Messages postés 114 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 20 mars 2008 - 19 févr. 2008 à 14:12
Bonjour,
j'ai une base access que j'interroge par vb6. J'ai dans une table nom,prenom,grade. Je voudrais savoir la commande sql pour avoir distinctement les différents grades de ma table et le nombre. Exemple ligne 1: chef 3 ligne 2 : sous chef  5 ligne 3 : personnel 50...

En sql cela devrait s'écrire : "select count(distinct(grade)) from bd_personnel" mais vb ne supporte pas l'imbrication count & distinct
Si je fais : "select count(grade) from bd_personnel group by grade"    j'ai tous les totaux mais pas les noms de grade !
Si je fais : "select grade from bd_personnel group by grade"    j'ai tous les grades mais pas les totaux !

J'ai un bouquin sur le sql mais il est vrai que le "Vrai" SQL type oracle ou sql serveur n'est pas aussi "rigide" et "limité" que microsoft.
merci et a+

Cliff le bouffeur

4 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
19 févr. 2008 à 14:03
excuses moi, mais mon expression telle qu' elle est
donne et le grade et le compte.
Tu remarques que je n' utilise pas "distinct" .
GROUP BY suffit pour avoir une ligne par grade.
Quand au compte il sera sur la même ligne et dans la colonne CompteDegrade.

<hr />
... Y'en a même qui disent qu'ils m'ont vu voler.
<hr />
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
19 févr. 2008 à 12:53
Salut,

essaies ceci :
SELECT bd_personnel.grade, Count(bd_personnel.grade) AS CompteDegrade
FROM bd_personnel
GROUP BY bd_personnel.grade;

tu auras
            Grade          Nombre
ligne 1: chef 3
ligne 2: sous chef  5
ligne 3 :personnel 50...
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
0
cs_bouf Messages postés 114 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 20 mars 2008
19 févr. 2008 à 13:55
Salut,
non la réponse donne QUE les grades. En fait j'ai remarqué que dès qu'il y a "distinct" ou "group by" il ne donne que les grades ??!!! bizarre mais ta réponse semble plus que correct mais pas sur VB.
Cliff le bouffeur
0
cs_bouf Messages postés 114 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 20 mars 2008
19 févr. 2008 à 14:12
Merci c'est exact. J'avais oublié de récupérer le reste des données (le comptage) dans la colonne comptedegrade.
Merci encore.
a+

Cliff le bouffeur
0
Rejoignez-nous