OVH Cloud OVH Cloud

Calcul entre enregistrements

2 réponses
Avatar
Baptiste
Bonjour =E0 tous,

J'ai une requ=EAte qui me totalise par ann=E9e des effectifs=20
de diff=E9rents groupes de personnes (les groupes sont=20
appel=E9s niveaux dans ma base).
J'ai ainsi dans une requ=EAte
Niveau 1 Niveau 2 Niveau 3 =20
1999 50 56 53
2000 40 60 70
2001 etc...

Je souhaite calculer l'=E9volution des effectifs soit pour=20
2000 pour le niveau 1 faire : (40-50) / 50 .
Comment peut on effectuer ce calcul. Car je ne parviens=20
qu'=E0 effectuer des calculs sur un m=EAme enregistrement (pou=20
r l'ann=E9e 2000 par exemple). Or le calcul que je souhaite=20
faire fais appel =E0 plusieurs enregistrements.

merci pour votre aide.

baptiste.

2 réponses

Avatar
Fr
Bonjour à tous,

J'ai une requête qui me totalise par année des effectifs
de différents groupes de personnes (les groupes sont
appelés niveaux dans ma base).
J'ai ainsi dans une requête
Niveau 1 Niveau 2 Niveau 3
1999 50 56 53
2000 40 60 70
2001 etc...

Je souhaite calculer l'évolution des effectifs soit pour
2000 pour le niveau 1 faire : (40-50) / 50 .
Comment peut on effectuer ce calcul. Car je ne parviens
qu'à effectuer des calculs sur un même enregistrement (pou
r l'année 2000 par exemple). Or le calcul que je souhaite
faire fais appel à plusieurs enregistrements.

merci pour votre aide.



Bonjour Baptiste,

En m'inspirant du site de Walter Stucki
(http://mypage.bluewin.ch/w.stucki/Requetes.htm#Cumul), j'ecrirai ceci
:

SELECT An, niveau1, Dmax("niveau1","nomTable","an <" & [an]) AS
niveau1_annee_precedente
FROM nomTable
ORDER BY an;

Cette requete afficherait l'annee en cours, le "niveau1" de l'annee en
cours et le "niveau1" de l'annee precedente. Ca marche ?
Si c'est ok, il suffit de remplacer "dmax(...)" par "niveau1 -
dmax(...)"






--
Francoise
ENITA Bordeaux - Unite de Formation en Informatique
http://www.enitab.fr
Bienvenue aux nouveaux sur ce groupe de discussion
http://users.skynet.be.mpfa

Avatar
Fr
"" a formulé ce jeudi :
Bonjour à tous,

J'ai une requête qui me totalise par année des effectifs de différents
groupes de personnes (les groupes sont appelés niveaux dans ma base). J'ai
ainsi dans une requête Niveau 1 Niveau 2 Niveau 3 1999
50 56 53 2000 40 60 70
2001 etc...

Je souhaite calculer l'évolution des effectifs soit pour 2000 pour le
niveau 1 faire : (40-50) / 50 . Comment peut on effectuer ce calcul. Car je
ne parviens qu'à effectuer des calculs sur un même enregistrement (pou r
l'année 2000 par exemple). Or le calcul que je souhaite faire fais appel à
plusieurs enregistrements.

merci pour votre aide.



Bonjour Baptiste,

En m'inspirant du site de Walter Stucki
(http://mypage.bluewin.ch/w.stucki/Requetes.htm#Cumul), j'ecrirai ceci :

SELECT An, niveau1, Dmax("niveau1","nomTable","an <" & [an]) AS
niveau1_annee_precedente
FROM nomTable
ORDER BY an;

Cette requete afficherait l'annee en cours, le "niveau1" de l'annee en cours
et le "niveau1" de l'annee precedente. Ca marche ?
Si c'est ok, il suffit de remplacer "dmax(...)" par "niveau1 - dmax(...)"


Après réflexion, ce serait plutôt DLast que Dmax.
A suivre...


--
Francoise
ENITA Bordeaux - Unite de Formation en Informatique
http://www.enitab.fr
Bienvenue aux nouveaux sur ce groupe de discussion
http://users.skynet.be.mpfa