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 05/01/2012, 14h48   #1
Invité régulier
 
Inscription : mai 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 40
Points : 6
Points : 6
Par défaut Test sur agrégat count

Bnjour cher amis
Voila une petite illustration de mon problème en image (mingnature en dessous ) :
Je veut afficher un 0 pour la wilaya de Djelfa pour les femmes, parce que il ya pas de femme sur cette wilaya.

Voila a ce que elle ressemble l'image : résultat de la requête sql :

Code :
1
2
3
4
5
6
nbr     wilaya     genre
100     Alger      Homme
120     Alger      Femme
6        Djelfa     Homme
2        Jijel        Femme
6        Jijel        Homme

Voici ma requite sql :

Code :
1
2
3
4
5
SELECT 
COUNT(idclient) AS nbr ,  wilaya  ,genre
FROM  clients 
WHERE idwilaya IN(16,17,18)
GROUP BY   idwilaya , genre
Images attachées
Type de fichier : jpg count.jpg (11,6 Ko, 4 affichages)
halimux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 15h56   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Comme MySQL ne connait pas WITH, il te faut une jointure externe à partir d'une table "sexe", ou d'une table temporaire.
Essaie ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
CREATE TEMPORARY TABLE sexe
(sexe CHAR(5));
 
INSERT INTO sexe
VALUES('homme'), ('femme');
 
SELECT COUNT(c.idclient) AS nbr, c.wilaya, s.sexe
FROM  sexe s
LEFT OUTER JOIN clients c ON c.genre = s.sexe
WHERE c.idwilaya IN(16,17,18)
GROUP BY c.idwilaya, s.sexe
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h06.


 
 
 
 
Partenaires

Hébergement Web