Requête

Résolu
kossinus Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
kossinus Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous.
J'ai une table dans Mysql comme suit:

id nomEtudiant statutDevoir

1 Toto ok
2 Tata pas_ok
3 Toto pas_ok
4 Titi ok
5 Titi ok
6 Titi pas_ok

Je veux faire une requête pour avoir un résultat du genre:

nomEtudiant statutDevoir_ok statutDevoir_non

Toto 1 1
Tata 0 1
Titi 2 1

Où statutDevoir_ok est le cumul de ok du statutDevoir d'étudiant et statutDevoir_non est le cumul de pas_ok.

J'ai fais une requête de cette forme:

SELECT nomEtudiant , statutDevoir , COUNT( * ) as nb
FROM maTable
GROUP BY nomEtudiant , statutDevoir

Cette requête me donne:
nomEtudiant statutDevoir nb

Toto ok 1
Toto pas_ok 1
Tata ok 0
Tata pas_ok 1
Titi ok 2
Titi pas_ok 1

Cette requête, même si elle me donne les bonnes informations, ne me donne pas le format demandé que je veux exploiter dans un code php.

J'aimerais savoir s'il est d'abord possible d'avoir le résultat que je cherche et si oui, un coup de main pour l'avoir serait beaucoup salutaire.
merci.

1 réponse

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Essaie quelque chose de ce genre :
SELECT nomEtudiant, 
  SUM(CASE WHEN statutDevoir = 'ok' then 1 else 0 end) as statutDevoir_ok,
  SUM(CASE WHEN statutDevoir = 'pas_ok' then 1 else 0 end) as statutDevoir_non
FROM maTable
GROUP BY nomEtudiant


Xavier
0
kossinus Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Wahou Xavier!!!! Impeccable!!!

ça marche à merveille!!! Merci beaucoup Xavier!
0