Requete avec des tranches d'age (group by)

Résolu
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014 - 19 sept. 2006 à 11:56
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014 - 19 sept. 2006 à 23:38
Bonjour

J'ai un petit soucis dans VB/Access.

J'ai une table personne avec 3 champs : nom, prénom, age (en faite c'est la date de naissance mais je calcul l'age).

Je voudrais faire un group by mais pas par age par "tranche d'age".

Par exemple pour le nombre de personne entre moins de 18,18-25, 26 et 45, 46 et +

Car après je dois faire un graphique (Il vaut mieu le faire avec Visual basic ou Access ?)

Merci d'avance pour votre aide sur la requete et éventuellement le graphique.

10 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 sept. 2006 à 23:35
"SELECT MaTABLE.Nom, MaTABLE.Prenom, MaTABLE.Dat_naiss, _
 CInt(Now()-[Dat_naiss])/364 AS Age, _
 IIf([Age]<=18,1,IIf(([Age]>18) And ([Age]<=26),2, _
 IIf(([Age]>26) And ([Age]<=45),3,4))) AS Tranche _
 FROM MaTABLE;"

 chaibat
3
geobasic Messages postés 69 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 octobre 2006
19 sept. 2006 à 12:28
Si tu n'a pas de zone "Tranche_age" dans ta table tu ne peux pas faire de Group By. Le mieux serait de rajouter cette zone sous forme numérique et lorque tu calcul l'age tu la renseigne de la façon suivante:

If age < 18 Then
     tranche_age = 1
Elseif age > 17 And age < 26 Then
     tranche_age = 2
elseif age >25 And age < 46 Then
    tranche_age = 3
else
    tranche_age = 4
endif

Ensuite tu pourras faire un Group By sur Tranche avec le n° correspondant.
0
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
19 sept. 2006 à 12:52
Oui mais je calcule l'age dans la requete directement. Les if else ca passe pas dans une requete.
0
geobasic Messages postés 69 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 octobre 2006
19 sept. 2006 à 14:58
Tu peux faire quatre requète avec un update pour determiner la tranche d'age, du genre:

Update MaTable set tranche_age = 1 where age < 18
Update MaTable set tranche_age = 2 where age > 17 and age < 26
etc..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
19 sept. 2006 à 15:05
Je te remercie.

Je vais essayer, ce soir en rentrant, par contre je crois que le WHERE sur age vu qu'il est caclculé, ca ne vas pas passé.

J'ai voulu afficher les personnes de plus de 18 ans avec :

SELECT nom,Round(CInt(Now()-[date_naissance])/364) as age FROM Tbl_personnes WHERE age > 18

Ca marche pas

SELECT nom,Round(CInt(Now()-[date_naissance])/364) as age FROM Tbl_personnes WHERE Round(CInt(Now()-[date_naissance])/364)>18

Ca non plus
0
geobasic Messages postés 69 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 octobre 2006
19 sept. 2006 à 15:15
Aie.. En Effet ça ne marchera pas, je pensais que age était un champ de la table que tu calculais par Update.
0
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
19 sept. 2006 à 15:17
Je peux faire 2 update de suite sinon, un pour calculer un champs age et après pour la plage.

Je te remercie pour tes infos
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 sept. 2006 à 18:59
Bonjour,
Tu fais deux requêtes Selection (et pas Update)


Requête 1
Nom / Prenom / Dat_naiss / Galcul_Age / Tranche_Age
                                                                          (générée à partir de Calcul_Age
                                                                           directement sur cette même
                                                                           requête)




Requête 2
Nom / Prenom / Tranche_Age

chaibat


 
0
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
19 sept. 2006 à 20:21
Bonjour

La première requete ressemble à quoi ?
0
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
19 sept. 2006 à 23:38
Ca marche parfaitement, merci pour votre aide.
0