#1111 - Invalid use of group function
Slt à tous,
J'ai cette requete :
Code:
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
Citation:
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 :
Citation:
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:
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:
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:
1 2 3
|
// Ajout m.sexe
GROUP BY dl.id_legis, m.sexe |
Et j'ai gentiment comme erreur :
Citation:
#1111 - Invalid use of group function
J'ai péché à quel niveau ?
Merci d'avance...