{Access} Requête à plusieurs regroupements

Fermé
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 29 déc. 2009 à 02:02
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 29 déc. 2009 à 13:07
Bonjour à tous,

Je ne sais même pas par où commencer. En fait, je n'ai jamais été confronté à une requête aussi compliquée (sur des tranches d'âges, ni avec plusieurs regroupement). Bon, je vous explique : Je souhaiterai afficher par nationalité, le nombre d'élèves par tranche d'âge et par sexe pour chaque nationalité. Les tranches d'âges sont au nombre de 3. Tout d'abord les -10 ans, de 10 à 15 ans et enfin la dernière tranche concerne les 15+. J'ai une table qui contient les élèves avec leur age et une autre qui contient les nationalités. Dois-je créer une table pour les tranches d'âges? Quelqu'un saurait-il comment dois-je procéder s'il vous plaît?

tableeleve(numeleve,nomeleve,age,sexe,numnationalite)
tablenationalite(numnationalite,nationalite)

Merci d'avance de me rendre le sourire.

Cordialement.

9 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
29 déc. 2009 à 11:23
Bonjour js8bleu,

L'ordre SQL suivant devrait te donner le résultat que tu cherches
SELECT a.nationalite AS Nationalite, b.sex AS Sexe ,sum( iif(b.age < 10 , 1 , 0)) AS Moins10 , sum(iif(b.age between 10 and 15 , 1 , 0)) AS Entre1015 , sum(iif(b.age > 15 , 1 , 0)) AS Plus15
FROM tablenationalite AS a, tableeleve AS b
WHERE a.numnationalite = b.numnationalite
GROUP BY b.sex, a.nationalite;

A plus
2
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 10:24
bonjour

bah si tu laisse t table com ca tu devra effectuer 3 requetes mais si tu ajoute une colonne ds ta table eleve qui serait par exemple groupe

et la si moins de 10ans groupe 1
10 15 groupe 2
reste groupe 3

ensuite tu execute une requete et tu execute ton tri sur cette colonne en 1er puis sur ce que tu as besoin
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 12:08
bonjour

Dans le sql d'access mettre desd iff je n'y crois pas trop!!!
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
29 déc. 2009 à 12:13
Bonjour moiced59,

Pas de problème, j'ai testé le code (sous Access 2003 et 2007) et cela fonctionne, tu trouveras également de la documentation sur le site de Microsoft
A plus.
0

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

Posez votre question
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 12:16
g tester aussi en vain!!!
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 12:27
je suis d'accord avec toi pr le mettre en vb mais en SDL g un doute g tester la requete sous 2007 elle ne fonctionne pas
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
29 déc. 2009 à 12:54
Bonjour,

Dans Access 2003, j'ai crée une nouvelle requête vide, j'ai ensuite choisis le mode sql, et j'ai copié/collé ce code ci-dessus et ensuite exécuté sans aucun problème, tu trouveras ici et là deux captures d'écrans.
A plus
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 13:04
bah c tr fort ca !!!!! moi ca ne fonctionne pas sous 2007
a+
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
29 déc. 2009 à 13:07
desolé tu avais raison j'avais laissé mon champ age en texte !!!!!
0