|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() kostia Inscription : octobre 2011 Messages : 7 ![]() |
Bonjour a tous,
Je dispose d'une table avec par exemple une colonne "Nombre" qui contient 1000 enregistrements. Je veux avoir une requette ou une nouvelle table qui contient une nouvelle colonne "MoyenneMobile" et bien entendu ma colonne "Nombre". Dans cette colonne "MoyenneMobile" je cherche a calculer la moyenne (mobile) par exemple des 20 enregistrements precedents. C'est a dire que par exemple, sur la ligne 20 de ma table, je vais veux voir apparaitre le resultat du calcul suivant : (ValeurLigne 1 + ValeurLigne 2 + ...+ValeurLigne 20)/20 Sur la ligne 21 de ma table, je vais veux voir apparaitre le resultat du calcul suivant : (ValeurLigne 2 + ValeurLigne 3 + ...+ValeurLigne 21)/20 Et ainsi de suite. Bien entendu, je cherche a rendre parametrable cela, c'est a dire que je compte pouvoir facilement changer la taille de ma Moyenne mobile, c'est a dire par exemple realiser une moyenne mobile sur les 10, 20 et pourquoi 100 derniers enregistrements. Je suis un peu perdu pour savoir comment realiser cela. Je ne sais pas si il y a des solutions grace aux requetes, ou s'il faut se tourner vers du VBA...? Je suis en train de découvrir l'acces aux données avec DAO et Recordset et je ne sais pas si c'est une solution. Pour info, ma table risque d'avoir entre 100.000 et 1.000.000 lignes. Je vous remercie par avance pour votre aide. Amicalement, Kostia |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Utilisez la fonction DAvg (MoyDom) qui est paramétrable à volonté. Attention cependant à avoir un champ type Numauto qui vous permette d'avoir un ordre fixe de vos enregistrements et de les sélectionner par le critère de recherche. BCdt |
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() kostia Inscription : octobre 2011 Messages : 7 ![]() |
Citation:
Par exemple, si je veux realiser une moyenne mobile sur les 10 derniers enregistrements. Comment dire a la fonction DAvg de ne prendre en compte que les champs qui sont compris entre le numero de cle actuel et le numero de cle actuel - 10 ? Je vous remercie pour votre aide Kostia |
|
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
En utilisant la fonction : Code :
Bcdt |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() kostia Inscription : octobre 2011 Messages : 7 ![]() |
Bonjour Fbtsra,
Merci pour votre aide. Pour vous donner un peu plus de precisions, voici ma requete "RqMoy" qui n'affiche que deux colonnes de ma table: Clé primaire : [ID] Valeur : [Valeur] J'ai 100.000 lignes Je compte créer una colonne "MoyenneMobile" qui réaliser la moyenne mobile des X precentes valeurs de "Valeur". Voici un exemple : Le resultat de ma requette "RqMoy" ID Valeur 1 1.5 2 1.6 3 1.8 4 2 5 1.9 6 1.7 8 1.6 9 1.5 ... 100000 2.1 Si par exemple je compte avoir le resultat d'une moyenne mobile de 3, c'est a dire qui realise la moyenne des 3 derniers enregistrements, je voudrais obtenir le resultat de la requette suviante : ID Valeur MoyenneMobile 1 1.5 - 2 1.6 - 3 1.8 1.6333 4 2 1.8 5 1.9 1.9 6 1.7 1.8666 8 1.6 1.7333 9 1.5 1.6 ... 100000 2.1 2.3 J'ai essayé d'utiliser la fonction DAvg mais je ne sais pas comme dire a cette fonction de ne prendre en compte que les 3 dereniers enregistrements. Voici par exemple l'une des formules que j'ai essayé mais qui ne marche pas : MoyenneMobile: DAvg("[Valeur]";"RqMoy";"[ID]>[ID]-3 AND [ID]<=[ID]") Si je ne mets aucun crtiere, la requette m'affiche immediatement la moyenne de tous les enregistrements. Si vous pouviez me donner un petit coup de main ce serait génial. Je vous remercie d'avannce. Kostia |
|
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Voici la requête répondant à vos attentes : Code :
Bcdt |
||
|
|
00
|
|
|
#7 | ||||
|
Membre chevronné
![]() ![]() |
Salut
Puisqu'il peut y avoir des trous dans les ID, je te propose... code à mettre dans un module standard Code :
Code :
Code :
Forms![le nom du formulaire qui lance la requête]![le nom de la zone de texte qui contient la tranche]
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
||||
|
10
|
Copyright © 2000-2012 - www.developpez.com