Voil=E0, actuellement j'utilise les requ=EAtes d'analyses=20
crois=E9es pour cr=E9er des tableaux crois=E9s dynamiques sous=20
forme de formulaire. Cela marche tr=E8s bien, surtout pour=20
les dates que l'on peut regrouper sous des ann=E9es, des=20
mois, ... .
Le probl=E8me, est que je souhaiterais regrouper l'age par=20
tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requ=EAte pour lui sp=E9cifier cela.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
Nicolas Mathieu
TRANSFORM Count([table1].[Num]) AS CompteDeNum SELECT Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" & Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge, Count(table1.Num) AS [Total de Num] FROM table1 GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25) PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1].[Date],Date())/1826) qui est intéressante. Elle divise le nombre de jour (entre le date du jour et la date de naissance dans cet exemple) par 1826,25 (365.25j X 5) On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et 9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai trouvé de plus simple.
Nico
"Florent" a écrit dans le message de news:0ff101c3a915$284abd60$ Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
TRANSFORM Count([table1].[Num]) AS CompteDeNum
SELECT
Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge,
Count(table1.Num) AS [Total de Num]
FROM table1
GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25)
PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1].[Date],Date())/1826)
qui est intéressante.
Elle divise le nombre de jour (entre le date du jour et la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5)
On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:0ff101c3a915$284abd60$a101280a@phx.gbl...
Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format
comme pour les dates
Merci quand même.
-----Message d'origine-----
Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table
TblTrancheAge (Code, Libelle)
1, "25 - 29"
2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta
requête.
Joindre cette table, et regrouper sur le code.
TRANSFORM Count([table1].[Num]) AS CompteDeNum SELECT Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" & Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge, Count(table1.Num) AS [Total de Num] FROM table1 GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25) PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1].[Date],Date())/1826) qui est intéressante. Elle divise le nombre de jour (entre le date du jour et la date de naissance dans cet exemple) par 1826,25 (365.25j X 5) On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et 9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai trouvé de plus simple.
Nico
"Florent" a écrit dans le message de news:0ff101c3a915$284abd60$ Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
Florent
La fonction est un peu complexe mais il fallait y penser.
Je vais tester cela
Merci
-----Message d'origine-----
TRANSFORM Count([table1].[Num]) AS CompteDeNum SELECT Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge,
Count(table1.Num) AS [Total de Num] FROM table1 GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25) PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1]. [Date],Date())/1826)
qui est intéressante. Elle divise le nombre de jour (entre le date du jour et la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5) On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" a écrit dans le message de
news:0ff101c3a915$284abd60$ Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
.
La fonction est un peu complexe mais il fallait y penser.
Je vais tester cela
Merci
-----Message d'origine-----
TRANSFORM Count([table1].[Num]) AS CompteDeNum
SELECT
Int(datediff("d",[table1].[Date],Date())/1826.25)*5
& "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS
TrancheDAge,
Count(table1.Num) AS [Total de Num]
FROM table1
GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25)
PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1].
[Date],Date())/1826)
qui est intéressante.
Elle divise le nombre de jour (entre le date du jour et
la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5)
On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour
quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage
réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça
c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:0ff101c3a915$284abd60$a101280a@phx.gbl...
Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format
comme pour les dates
Merci quand même.
-----Message d'origine-----
Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table
TblTrancheAge (Code, Libelle)
1, "25 - 29"
2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta
requête.
Joindre cette table, et regrouper sur le code.
La fonction est un peu complexe mais il fallait y penser.
Je vais tester cela
Merci
-----Message d'origine-----
TRANSFORM Count([table1].[Num]) AS CompteDeNum SELECT Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge,
Count(table1.Num) AS [Total de Num] FROM table1 GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25) PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1]. [Date],Date())/1826)
qui est intéressante. Elle divise le nombre de jour (entre le date du jour et la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5) On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" a écrit dans le message de
news:0ff101c3a915$284abd60$ Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
.
C15
Bonjour Florent,
Tu peux aussi utiliser la fonction Partition
Par ex :
TRANSFORM Count([T Adhérents].N°Adherent) AS CompteDeN°Adherent1 SELECT [T Adhérents].Specialite FROM [T Adhérents] INNER JOIN [R calcul âges] ON [T Adhérents].N°Adherent [R calcul âges].N°Adherent GROUP BY [T Adhérents].Specialite PIVOT nz(Partition([R calcul âges]![Age],0,100,10),"âge inconnu");
me donne la répartition d'adhérents par spécialités et tranches d'âges.
A+
c15
"Florent" a écrit dans le message de news:065b01c3a930$98087000$ La fonction est un peu complexe mais il fallait y penser.
Je vais tester cela
Merci
-----Message d'origine-----
TRANSFORM Count([table1].[Num]) AS CompteDeNum SELECT Int(datediff("d",[table1].[Date],Date())/1826.25)*5 & "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS TrancheDAge,
Count(table1.Num) AS [Total de Num] FROM table1 GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25) PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1]. [Date],Date())/1826)
qui est intéressante. Elle divise le nombre de jour (entre le date du jour et la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5) On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" a écrit dans le message de
news:0ff101c3a915$284abd60$ Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format comme pour les dates
Merci quand même.
-----Message d'origine----- Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table TblTrancheAge (Code, Libelle)
1, "25 - 29" 2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta requête. Joindre cette table, et regrouper sur le code.
A voir... Cordialement. Xavier. .
.
Bonjour Florent,
Tu peux aussi utiliser la fonction Partition
Par ex :
TRANSFORM Count([T Adhérents].N°Adherent) AS CompteDeN°Adherent1
SELECT [T Adhérents].Specialite
FROM [T Adhérents] INNER JOIN [R calcul âges] ON [T Adhérents].N°Adherent [R calcul âges].N°Adherent
GROUP BY [T Adhérents].Specialite
PIVOT nz(Partition([R calcul âges]![Age],0,100,10),"âge inconnu");
me donne la répartition d'adhérents par spécialités et tranches d'âges.
A+
c15
"Florent" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:065b01c3a930$98087000$a001280a@phx.gbl...
La fonction est un peu complexe mais il fallait y penser.
Je vais tester cela
Merci
-----Message d'origine-----
TRANSFORM Count([table1].[Num]) AS CompteDeNum
SELECT
Int(datediff("d",[table1].[Date],Date())/1826.25)*5
& "-" &
Int(datediff("d",[table1].[Date],Date())/1826.25)*5+4 AS
TrancheDAge,
Count(table1.Num) AS [Total de Num]
FROM table1
GROUP BY Int(datediff("d",[table1].[Date],Date())/1826.25)
PIVOT [table1].[Nom];
c'est la fonction Int(datediff("d",[table1].
[Date],Date())/1826)
qui est intéressante.
Elle divise le nombre de jour (entre le date du jour et
la date de naissance
dans cet exemple) par 1826,25 (365.25j X 5)
On obtient 0 pour quelqu'un entre 0 et 4ans, 1 pour
quelqu'un entre 5 et
9ans, 2 pour quelqu'un entre 10 et 14ans... etc...
On remultiplie ce nombre par 5 pour avoir l'affichage
réelle de l'age.
J'ai pas trop eu le temps de me pencher dessus mais ça
c'est ce que j'ai
trouvé de plus simple.
Nico
"Florent" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:0ff101c3a915$284abd60$a101280a@phx.gbl...
Oui je vois ce que tu veux dire.
Mais je pensais que l'on pouvait y appliquer un format
comme pour les dates
Merci quand même.
-----Message d'origine-----
Bonjour Florent,
Par SQL, désolé, je ne vois.
Tu peut éventuellement créer une table
TblTrancheAge (Code, Libelle)
1, "25 - 29"
2, "30 - 34" etc.
Ajouter ce champ Code dans une des tables sources de ta
requête.
Joindre cette table, et regrouper sur le code.
Alors là les gars, chapeau! Je me les mets au chaud ces deux SQL!
On sent une certaine maîtrise de SQL, sinon, une maitrîse certaine. ;-)
Cordialement. Xavier.
fabienne HUÏEZ
Voici comment j'ai résolu le problème. (je peux t'envoyer ma base exemple si tu me transmets ton adresse mail) Sous Access, j'ai une table Client (Nom, prénom,...anneeNaissance, age,...). L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge : age-min age_max age_range 18 25 18-25 26 40 25-40 41 60 40-60 61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux tables, de façon à faire une requête qui m'afficherait : nom âge groupe TITI 18 18-25 TOTO 19 18-25 TATA 67 plus de 60
1ère solution proposée : SELECT Customer.last_name, Customer.age, Age_group.age_range FROM Age_group, Customer WHERE (((Customer.age)>=[age_min] And (Customer.age)<= [age_max])) GROUP BY Customer.last_name, Customer.age, Age_group.age_range ORDER BY Customer.last_name;
2ème solution proposée : SELECT Customer.last_name, Customer.age, IIf([age]> And [age]<26,"18-25",IIf([age]>& And [age]<41,"25-40",IIf ([age]>A And [age]<61,"41-60","plus de 60"))) AS categorie FROM Customer;
-----Message d'origine----- Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses croisées pour créer des tableaux croisés dynamiques sous forme de formulaire. Cela marche très bien, surtout pour les dates que l'on peut regrouper sous des années, des mois, ... .
Le problème, est que je souhaiterais regrouper l'age par tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.
Merci d'avance. .
Voici comment j'ai résolu le problème.
(je peux t'envoyer ma base exemple si tu me transmets ton
adresse mail)
Sous Access, j'ai
une table Client (Nom, prénom,...anneeNaissance, age,...).
L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge :
age-min age_max age_range
18 25 18-25
26 40 25-40
41 60 40-60
61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque
groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux
tables, de façon à faire une requête qui m'afficherait :
nom âge groupe
TITI 18 18-25
TOTO 19 18-25
TATA 67 plus de 60
1ère solution proposée :
SELECT Customer.last_name, Customer.age,
Age_group.age_range
FROM Age_group, Customer
WHERE (((Customer.age)>=[age_min] And (Customer.age)<=
[age_max]))
GROUP BY Customer.last_name, Customer.age,
Age_group.age_range
ORDER BY Customer.last_name;
2ème solution proposée :
SELECT Customer.last_name, Customer.age, IIf([age]>=18 And
[age]<26,"18-25",IIf([age]>=26 And [age]<41,"25-40",IIf
([age]>=41 And [age]<61,"41-60","plus de 60"))) AS
categorie
FROM Customer;
-----Message d'origine-----
Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses
croisées pour créer des tableaux croisés dynamiques sous
forme de formulaire. Cela marche très bien, surtout pour
les dates que l'on peut regrouper sous des années, des
mois, ... .
Le problème, est que je souhaiterais regrouper l'age par
tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.
Voici comment j'ai résolu le problème. (je peux t'envoyer ma base exemple si tu me transmets ton adresse mail) Sous Access, j'ai une table Client (Nom, prénom,...anneeNaissance, age,...). L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge : age-min age_max age_range 18 25 18-25 26 40 25-40 41 60 40-60 61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux tables, de façon à faire une requête qui m'afficherait : nom âge groupe TITI 18 18-25 TOTO 19 18-25 TATA 67 plus de 60
1ère solution proposée : SELECT Customer.last_name, Customer.age, Age_group.age_range FROM Age_group, Customer WHERE (((Customer.age)>=[age_min] And (Customer.age)<= [age_max])) GROUP BY Customer.last_name, Customer.age, Age_group.age_range ORDER BY Customer.last_name;
2ème solution proposée : SELECT Customer.last_name, Customer.age, IIf([age]> And [age]<26,"18-25",IIf([age]>& And [age]<41,"25-40",IIf ([age]>A And [age]<61,"41-60","plus de 60"))) AS categorie FROM Customer;
-----Message d'origine----- Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses croisées pour créer des tableaux croisés dynamiques sous forme de formulaire. Cela marche très bien, surtout pour les dates que l'on peut regrouper sous des années, des mois, ... .
Le problème, est que je souhaiterais regrouper l'age par tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.
Merci d'avance. .
Nicolas Mathieu
Bien vu, mais ça n'est pas très pratique si chaque année tu dois changer l'âge de tes clients!
"fabienne HUÏEZ" a écrit dans le message de news:0e2701c3aa00$4e2d9d40$ Voici comment j'ai résolu le problème. (je peux t'envoyer ma base exemple si tu me transmets ton adresse mail) Sous Access, j'ai une table Client (Nom, prénom,...anneeNaissance, age,...). L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge : age-min age_max age_range 18 25 18-25 26 40 25-40 41 60 40-60 61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux tables, de façon à faire une requête qui m'afficherait : nom âge groupe TITI 18 18-25 TOTO 19 18-25 TATA 67 plus de 60
1ère solution proposée : SELECT Customer.last_name, Customer.age, Age_group.age_range FROM Age_group, Customer WHERE (((Customer.age)>=[age_min] And (Customer.age)< [age_max])) GROUP BY Customer.last_name, Customer.age, Age_group.age_range ORDER BY Customer.last_name;
2ème solution proposée : SELECT Customer.last_name, Customer.age, IIf([age]> And [age]<26,"18-25",IIf([age]>& And [age]<41,"25-40",IIf ([age]>A And [age]<61,"41-60","plus de 60"))) AS categorie FROM Customer;
-----Message d'origine----- Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses croisées pour créer des tableaux croisés dynamiques sous forme de formulaire. Cela marche très bien, surtout pour les dates que l'on peut regrouper sous des années, des mois, ... .
Le problème, est que je souhaiterais regrouper l'age par tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.
Merci d'avance. .
Bien vu, mais ça n'est pas très pratique si chaque année tu dois changer
l'âge de tes clients!
"fabienne HUÏEZ" <fabienne.huiez@francetelecom.com> a écrit dans le message
de news:0e2701c3aa00$4e2d9d40$a501280a@phx.gbl...
Voici comment j'ai résolu le problème.
(je peux t'envoyer ma base exemple si tu me transmets ton
adresse mail)
Sous Access, j'ai
une table Client (Nom, prénom,...anneeNaissance, age,...).
L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge :
age-min age_max age_range
18 25 18-25
26 40 25-40
41 60 40-60
61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque
groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux
tables, de façon à faire une requête qui m'afficherait :
nom âge groupe
TITI 18 18-25
TOTO 19 18-25
TATA 67 plus de 60
1ère solution proposée :
SELECT Customer.last_name, Customer.age,
Age_group.age_range
FROM Age_group, Customer
WHERE (((Customer.age)>=[age_min] And (Customer.age)< [age_max]))
GROUP BY Customer.last_name, Customer.age,
Age_group.age_range
ORDER BY Customer.last_name;
2ème solution proposée :
SELECT Customer.last_name, Customer.age, IIf([age]> And
[age]<26,"18-25",IIf([age]>& And [age]<41,"25-40",IIf
([age]>A And [age]<61,"41-60","plus de 60"))) AS
categorie
FROM Customer;
-----Message d'origine-----
Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses
croisées pour créer des tableaux croisés dynamiques sous
forme de formulaire. Cela marche très bien, surtout pour
les dates que l'on peut regrouper sous des années, des
mois, ... .
Le problème, est que je souhaiterais regrouper l'age par
tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.
Bien vu, mais ça n'est pas très pratique si chaque année tu dois changer l'âge de tes clients!
"fabienne HUÏEZ" a écrit dans le message de news:0e2701c3aa00$4e2d9d40$ Voici comment j'ai résolu le problème. (je peux t'envoyer ma base exemple si tu me transmets ton adresse mail) Sous Access, j'ai une table Client (Nom, prénom,...anneeNaissance, age,...). L'âge est calculé(annéecourante - anneeNaissance)
et une table GroupeAge : age-min age_max age_range 18 25 18-25 26 40 25-40 41 60 40-60 61 100 plus de 60
1 client appartient a un et un seul groupe d'âge. Chaque groupe d'âge a plusieurs clients
Quel champ utiliser pour mettre en relation les deux tables, de façon à faire une requête qui m'afficherait : nom âge groupe TITI 18 18-25 TOTO 19 18-25 TATA 67 plus de 60
1ère solution proposée : SELECT Customer.last_name, Customer.age, Age_group.age_range FROM Age_group, Customer WHERE (((Customer.age)>=[age_min] And (Customer.age)< [age_max])) GROUP BY Customer.last_name, Customer.age, Age_group.age_range ORDER BY Customer.last_name;
2ème solution proposée : SELECT Customer.last_name, Customer.age, IIf([age]> And [age]<26,"18-25",IIf([age]>& And [age]<41,"25-40",IIf ([age]>A And [age]<61,"41-60","plus de 60"))) AS categorie FROM Customer;
-----Message d'origine----- Bonjour,
Voilà, actuellement j'utilise les requêtes d'analyses croisées pour créer des tableaux croisés dynamiques sous forme de formulaire. Cela marche très bien, surtout pour les dates que l'on peut regrouper sous des années, des mois, ... .
Le problème, est que je souhaiterais regrouper l'age par tranche d'ages de 5 ans (par ex : 25 - 29, 30 - 34, ...)
Comment faire dans ma requête pour lui spécifier cela.