Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/04/2011, 15h45   #1
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Par défaut #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...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 10h47   #2
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Ce que je souhaite faire est impossible? certains me diront de le faire avec un langage serveur comme PHP, moi je souhaite faire mes requete depuis une interface PhpMyAdmin.

Merci d'avance...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h24   #3
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Compte tenu du manque de réaction, je déduits que c'est de la cosmétique.

Meilleures salutations à tous...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h39.


 
 
 
 
Partenaires

Hébergement Web