Slt à tous,
J'ai cette requete :
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
et un jeu de résultat
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()
Ce résultat est satisfaisant.
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 :
legislatures
1 - 120 - Féminin(10), Masculin(110)
2 - 120 - Féminin(8), Masculin(112)
Pour le résultat ci-dessus, je modifie ma requête ainsi :
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
Modifications :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
// Ajout  m.sexe
GROUP BY dl.id_legis, m.sexe
Et j'ai gentiment comme erreur :
#1111 - Invalid use of group function
J'ai péché à quel niveau ?

Merci d'avance...