Requete de Statistique [Résolu]

Messages postés
7
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
22 juin 2009
- - Dernière réponse : cs_dimah77
Messages postés
7
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
22 juin 2009
- 20 avril 2009 à 18:15
Bonjour,
Je me casse la tete depuis plusieurs jours sur une requete, etant debutant en SQL.
Voila : j'ai une 2 table avec les champs suivant : table ADHERANT : Matricule,Nom_AD,ID_Activité,Sexe
table SPORT : ID_Activité, Nom_ACT
je travaille sur une requete qui me produira le tableau suivant
ID_ACT | Nom_ACT | NbrFilles | NbrGarçons | NbrTotal

j'ai reussi a trouver cette requette :
select distinct(ID_ACtivite), Nom_ACT, sexe, count(ID_Activite) as Nombre
from ADHERANT, SPORT
where SPORT.id_Activite = ADHERANT.ID_Activite
group by id_activite,Nom_ACT,sexe
order by ID_Activite, sexe
mais elle me donne deux ligne distincte pour chaque sport ...
ce que je voudrai c'est avoir une seule ligne detaillée par Sport selon le schema donné ..
Merci
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
3
Merci
Bonjour

voici la requete (les noms des champs ne sont peut etre pas les bons, j'ai testé chez moi avec d'autres noms)
il y a peut etre plus simple, mais franchement je ne vois pas

SELECT idactivite, nom_activite, sum(sexeM) as nbrGarcons, sum(sexeF) as nbrFilles, sum(sexeM) + sum(sexeF) as total
from
(    select  s.idactivite as idactivite, s.nom_activite as nom_activite, count(*) as sexeM, 0 as sexeF
    from sport s
    left outer join adherent A1 on (s.idactivite = a1.idactivite)
    WHERE A1.sexe = 'M'
    group by s.idactivite, s.nom_activite
Union
    select s.idactivite as idactivite, s.nom_activite as nom_activite, 0 as sexeM, count(*) as sexeF
    from sport s
    left outer join adherent A1 on (s.idactivite = a1.idactivite)
    WHERE A1.sexe = 'F'
    group by s.idactivite, s.nom_activite
union
    SELECT s.idactivite as idactivite, s.nom_activite as nom_activite, 0 as sexeM, 0 as sexeF
    from sport s
    where s.idactivite not in (select idactivite from adherent)) as tbl
group by idactivite, nom_activite

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de aieeeuuuuu
Messages postés
7
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
22 juin 2009
0
Merci
Merci aieeeuuuuu , je v tester et repondre des que ca marche
Commenter la réponse de cs_dimah77