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

Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 11:56 - Dernière réponse : Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention
- 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
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 19 sept. 2006 à 23:35
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

Merci chaibat05 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de chaibat05
geobasic 69 Messages postés jeudi 6 novembre 2003Date d'inscription 3 octobre 2006 Dernière intervention - 19 sept. 2006 à 12:28
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
Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 12:52
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
geobasic 69 Messages postés jeudi 6 novembre 2003Date d'inscription 3 octobre 2006 Dernière intervention - 19 sept. 2006 à 14:58
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
Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 15:05
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
geobasic 69 Messages postés jeudi 6 novembre 2003Date d'inscription 3 octobre 2006 Dernière intervention - 19 sept. 2006 à 15:15
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
Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 15:17
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
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 19 sept. 2006 à 18:59
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
Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 20:21
0
Merci
Bonjour

La première requete ressemble à quoi ?
Commenter la réponse de Robinwood01
Robinwood01 153 Messages postés jeudi 25 avril 2002Date d'inscription 3 juillet 2014 Dernière intervention - 19 sept. 2006 à 23:38
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.