OVH Cloud OVH Cloud

Calcul de classe d'age

5 réponses
Avatar
Romain Donnadieu
Bonjour,

J'ai une table du genre

nom (texte)
prenom (texte)
dateNaissance (int)

J'aimerais faire une requete qui me trouve le nombre de personnes nés entre
(par exple) 1950 et 1960, le nombre de personnes nes entre 1960 et 1970
etc....

Je bloque un peu, je suis pas un pro de SQL....

Si vous avez des idées...

Merci de votre aide,

Romain

5 réponses

Avatar
le méruvien
bonjour,
tu met sur ton formulaire un champ "date_debut" et un champ "date_fin"
et dans ton code, tu dis ouvrir le formulaire si date>Úte_debut et date<=
date_fin

"Romain Donnadieu" a écrit dans le message de
news: 4291a012$0$10455$
Bonjour,

J'ai une table du genre

nom (texte)
prenom (texte)
dateNaissance (int)

J'aimerais faire une requete qui me trouve le nombre de personnes nés
entre (par exple) 1950 et 1960, le nombre de personnes nes entre 1960 et
1970 etc....

Je bloque un peu, je suis pas un pro de SQL....

Si vous avez des idées...

Merci de votre aide,

Romain



Avatar
Eric
Bonjour Romain,

Une solution serait d'utiliser la fonction Partition()

Soit une table nommée TableAge contenant 3 champs :
Nom Texte
Prenom Texte
An Integer comme indiqué car je suppose que tu stockes l'année et non la
date de naissance sinon le type de champ n'est pas approprié.

En adaptant avec le nom de ta table et de tes champs, copies le SQL
ci-dessous dans la fenêtre SQL d'une requête (Bouton SQL en haut à
gauche dans la barre d'outils) après avoir fermé la fenêtre Ajout d'une
table sans rien sélectionner.

SELECT
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10) AS
Tranches, Count(TableAge.Nom) AS [Nb de personnes]
FROM TableAge
GROUP BY
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10);

--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,

J'ai une table du genre

nom (texte)
prenom (texte)
dateNaissance (int)

J'aimerais faire une requete qui me trouve le nombre de personnes nés entre
(par exple) 1950 et 1960, le nombre de personnes nes entre 1960 et 1970
etc....

Je bloque un peu, je suis pas un pro de SQL....

Si vous avez des idées...

Merci de votre aide,

Romain




Avatar
Eric
.../...

Correction : Pourque tu commences tes tranches à la 1ere décennie
inférieure ou égale à la plus petite valeur de l'année de ta table ( par
exemple 1940 pour un minimum de l'année48)


SELECT
Partition([An],Int(DMin("An","TableAge")/10)*10,DMax("[An]","TableAge")+10,10)
AS Tranches, Count(TableAge.Nom) AS [Nb de personnes]
FROM TableAge
GROUP BY
Partition([An],Int(DMin("An","TableAge")/10)*10,DMax("[An]","TableAge")+10,10);


--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour Romain,

Une solution serait d'utiliser la fonction Partition()

Soit une table nommée TableAge contenant 3 champs :
Nom Texte
Prenom Texte
An Integer comme indiqué car je suppose que tu stockes l'année et non la
date de naissance sinon le type de champ n'est pas approprié.

En adaptant avec le nom de ta table et de tes champs, copies le SQL
ci-dessous dans la fenêtre SQL d'une requête (Bouton SQL en haut à
gauche dans la barre d'outils) après avoir fermé la fenêtre Ajout d'une
table sans rien sélectionner.

SELECT
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10) AS
Tranches, Count(TableAge.Nom) AS [Nb de personnes]
FROM TableAge
GROUP BY
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10);

--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour,

J'ai une table du genre

nom (texte)
prenom (texte)
dateNaissance (int)

J'aimerais faire une requete qui me trouve le nombre de personnes nés
entre (par exple) 1950 et 1960, le nombre de personnes nes entre 1960
et 1970 etc....

Je bloque un peu, je suis pas un pro de SQL....

Si vous avez des idées...

Merci de votre aide,

Romain





Avatar
Romain Donnadieu
Merci beaucoup, je connaissais pas cette commande Partition!!

Romain.


"Eric" a écrit dans le message de news:
%
.../...

Correction : Pourque tu commences tes tranches à la 1ere décennie
inférieure ou égale à la plus petite valeur de l'année de ta table ( par
exemple 1940 pour un minimum de l'année48)


SELECT
Partition([An],Int(DMin("An","TableAge")/10)*10,DMax("[An]","TableAge")+10,10)
AS Tranches, Count(TableAge.Nom) AS [Nb de personnes]
FROM TableAge
GROUP BY
Partition([An],Int(DMin("An","TableAge")/10)*10,DMax("[An]","TableAge")+10,10);


--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour Romain,

Une solution serait d'utiliser la fonction Partition()

Soit une table nommée TableAge contenant 3 champs :
Nom Texte
Prenom Texte
An Integer comme indiqué car je suppose que tu stockes l'année et non la
date de naissance sinon le type de champ n'est pas approprié.

En adaptant avec le nom de ta table et de tes champs, copies le SQL
ci-dessous dans la fenêtre SQL d'une requête (Bouton SQL en haut à gauche
dans la barre d'outils) après avoir fermé la fenêtre Ajout d'une table
sans rien sélectionner.

SELECT
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10) AS
Tranches, Count(TableAge.Nom) AS [Nb de personnes]
FROM TableAge
GROUP BY
Partition([An],DMin("[An]","TableAge"),DMax("[An]","TableAge")+10,10);

--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour,

J'ai une table du genre

nom (texte)
prenom (texte)
dateNaissance (int)

J'aimerais faire une requete qui me trouve le nombre de personnes nés
entre (par exple) 1950 et 1960, le nombre de personnes nes entre 1960 et
1970 etc....

Je bloque un peu, je suis pas un pro de SQL....

Si vous avez des idées...

Merci de votre aide,

Romain







Avatar
Bonjour,

"Romain Donnadieu"
| Merci beaucoup, je connaissais pas cette commande Partition!!

| "Eric"
| > SELECT
| > Partition(blabla)

Eh bien tu n'es pas le seul !!

Maintenant on comprend mieux pourquoi pour devenir innovants,
les forums ont besoin de renouveller un peu leurs répondeurs ;-))

Raymond, CFI, 3Stone, Jessy !
C'est quand que vous vous mettez un peu en jachère (comme moi, quoi...) ?
:-))))

oups, une brochette de mvp sans le faire exprès, désolé ;-))
--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------