Slt à tous,
J'ai cette requete :
et un jeu de résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT CONCAT(dl.id_legis, ' - ', COUNT(dl.id_depute), ' - ', GROUP_CONCAT(DISTINCT CONCAT(s.genre, '(', ')') ORDER BY s.genre SEPARATOR ", ") ) as legislatures FROM depute_legislatures as dl INNER JOIN membres as m ON m.id_membre = dl.id_depute INNER JOIN sexe as s ON s.id_sexe = m.sexe WHERE dl.suppleant = 0 GROUP BY dl.id_legis ORDER BY dl.id_legis
Ce résultat est satisfaisant.legislatures
1 - 120 - Féminin(), Masculin()
2 - 120 - Féminin(), Masculin()
3 - 120 - Féminin(), Masculin()
4 - 180 - Féminin(), Masculin()
5 - 180 - Féminin(), Masculin()
6 - 180 - Féminin(), Masculin()
7 - 180 - Féminin(), Masculin()
8 - 180 - Féminin(), Masculin()
Explication de chaque ligne : La législature 1 compte 120 députés constitués de Féminin() pour femmes et Masculin() pour hommes.
Je souhaite maintenant entre les parenthèses de chaque genre ajouter le nombre de députés dans ce genre.
Exemple :
Pour le résultat ci-dessus, je modifie ma requête ainsi :legislatures
1 - 120 - Féminin(10), Masculin(110)
2 - 120 - Féminin(8), Masculin(112)
Modifications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT CONCAT(dl.id_legis, ' - ', COUNT(dl.id_depute), ' - ', GROUP_CONCAT(DISTINCT CONCAT(s.genre, '(', CAST(COUNT(dl.id_depute) AS CHAR), ')') ORDER BY s.genre SEPARATOR ", ") ) as legislature FROM depute_legislatures as dl INNER JOIN membres as m ON m.id_membre = dl.id_depute INNER JOIN sexe as s ON s.id_sexe = m.sexe WHERE dl.suppleant = 0 GROUP BY dl.id_legis, m.sexe ORDER BY dl.id_legis
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // Ajout de CAST(COUNT(dl.id_depute) AS CHAR) GROUP_CONCAT(DISTINCT CONCAT(s.genre, '(', CAST(COUNT(dl.id_depute) AS CHAR), ')') ORDER BY s.genre SEPARATOR ", ")
Et j'ai gentiment comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // Ajout m.sexe GROUP BY dl.id_legis, m.sexe
J'ai péché à quel niveau ?#1111 - Invalid use of group function
Merci d'avance...
Partager