equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 février 2011
-
21 mars 2008 à 09:54
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 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 !!
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 février 2011 25 mars 2008 à 17:57
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