Requete avec des tranches d'age (group by) [Résolu]

Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
- - Dernière réponse : Robinwood01
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
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.
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
3
3
Merci
"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

Dire « Merci » 3

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

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

Commenter la réponse de chaibat05
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Dernière intervention
3 octobre 2006
0
Merci
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.
Commenter la réponse de geobasic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
0
Merci
Oui mais je calcule l'age dans la requete directement. Les if else ca passe pas dans une requete.
Commenter la réponse de Robinwood01
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Dernière intervention
3 octobre 2006
0
Merci
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..
Commenter la réponse de geobasic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
0
Merci
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
Commenter la réponse de Robinwood01
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Dernière intervention
3 octobre 2006
0
Merci
Aie.. En Effet ça ne marchera pas, je pensais que age était un champ de la table que tu calculais par Update.
Commenter la réponse de geobasic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
0
Merci
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
Commenter la réponse de Robinwood01
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
3
0
Merci
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


 
Commenter la réponse de chaibat05
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
0
Merci
Bonjour

La première requete ressemble à quoi ?
Commenter la réponse de Robinwood01
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Dernière intervention
3 juillet 2014
0
Merci
Ca marche parfaitement, merci pour votre aide.
Commenter la réponse de Robinwood01

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.