Requête qui renvoit un tableau par tranche d'age [Résolu]

Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
- - Dernière réponse : equinoxe83
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
- 25 mars 2008 à 17:57
Bonjour à tous,
J'ai une requête à faire mais je vois pas trop comment m'y prendre ...
Un peu d'aide serait bienvenue !!

Voilà le contexte :

Des usagers appellent un No de téléphone.
ces usagers sont connus et référencés dans une table Usager (par codeUsager). On connait également leur date de naissance (naissanceUsager).
Tous les appels sont référencés dans une table Appels et ont un lien avec la table Usager via le codeUsager.
 Mon souhait est de disposer d'un tableau en sortie qui me donne le Nbr d'appels par tranche d'age (de 0 à 17, de 18 à 59, 60 et +).

C'est certainement pas bien compliqué mais comme je suis loin d'être expert sur sql, je ne vois pas par quel bout le prendre !!

Merci d'avance.
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
3
Merci
J'ai trouvé !!!!
Ci-joint la requête ... au cas où quelqu'un est intéressé!
Ici, je récupère le Nombre d'usagers hommes (genreusager=1) différents par tranches d'age (de moins de 18, 18 à 44, 45 à 65, 65 et +) .
Merci à Stef60 du forum "comment ça marche" (post de Déc 07) pour la piste ... rendons à césar ...

SELECT a.cnt1
, b.cnt2
, c.cnt3
, d.cnt4
FROM ( SELECT COUNT(DISTINCT usager.codeusager) AS cnt1
FROM usager
INNER JOIN ListeAppel  ON Usager.codeUsager = ListeAppel.codeUsager
                            WHERE      (ListeAppel.dateListeAppel BETWEEN @date AND @datefin) and (year(getdate())-year(Usager.datenaissanceusager)<18 and usager.genreusager=1)
) AS a
, (  SELECT COUNT(DISTINCT usager.codeusager) AS cnt2
FROM usager
INNER JOIN ListeAppel  ON Usager.codeUsager = ListeAppel.codeUsager
                            WHERE      (ListeAppel.dateListeAppel BETWEEN @date AND @datefin) and (year(getdate())-year(Usager.datenaissanceusager) between 18 and 44 and usager.genreusager=1)
) AS b
,  (  SELECT COUNT(DISTINCT usager.codeusager) AS cnt3
FROM usager
INNER JOIN ListeAppel  ON Usager.codeUsager = ListeAppel.codeUsager
                            WHERE      (ListeAppel.dateListeAppel BETWEEN @date AND @datefin) and (year(getdate())-year(Usager.datenaissanceusager) between 45 and 65 and usager.genreusager=1)
) AS c
, (  SELECT COUNT(DISTINCT usager.codeusager) AS cnt4
FROM usager
INNER JOIN ListeAppel  ON Usager.codeUsager = ListeAppel.codeUsager
                            WHERE      (ListeAppel.dateListeAppel BETWEEN @date AND @datefin) and (year(getdate())-year(Usager.datenaissanceusager) >65 and usager.genreusager=1)
) AS d

Dire « Merci » 3

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

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

Commenter la réponse de equinoxe83
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
0
Merci
Personne pour me donner un coup de pouce sur le sujet ??
Commenter la réponse de equinoxe83