Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb résultat requête analyse croisée

1 réponse
Avatar
Pablo
Bonjour à tous,

j'ai un pb avec le résultat donné par une requête analyse croisée.
Cette requête est basée sur la table sortiesmp qui contient les sorties de
stock effectuées sur nos matières premières sur une année (année glissante).
Je me retrouve donc avec un enregistrement par sortie avec pour chaque le
code article, la date du mouvement et la quantité.
J'utilise une requête analyse croisée de façon à avoir la somme des sorties
par mois et la somme, moyenne et écart-type sur 12 mois et ceci pour chaque
article. Pour être plus clair :
1) j'ai la somme des sorties pour janvier, février, mars, ...
2) la somme totale (en additionnant chaque mois)
3) la moyenne sur 12 mois (somme janvier + somme fev + ...) / 12
4) l'écart-type sur 12 mois (sur les valeurs de somme janvier, somme
février, ..., c'est-à-dire sur 12 valeurs)

Mon pb c'est que la moyenne et l'écart-type ne correspondent pas à ce que je
veux.
1) J'ai bien pour chaque article les sommes par mois .
2) J'ai bien la somme totale par article.
3) la moyenne et l'écart-type sont incorrects. En fait j'ai la moyenne et
l'écart-type par article de toutes les sorties et par par rapport aux totaux
mensuels. J'ai essayé de trouver la solution en vain ...

Est-ce que je veux faire est possible et si oui comment ?

Merci d'avance.

Anthony.

Ci-dessous quelques détails :
1) table d'origine :
codearticle date du mouvement quantité
AA0012 12/01/2007 50
AA0012 15/01/2007 23
AA0012 05/05/2007 16
AA0013 12/11/2006 12
AA0013 11/04/2007 80
...

2) Requête analyse croisée (présentation SQL pour plus de facilité) :
TRANSFORM Sum(sortiesmp.qtemouvemente) AS SommeDeqtemouvemente
SELECT sortiesmp.codearticle, Avg(sortiesmp.qtemouvemente) AS [Moyenne de
qtemouvemente], Sum(sortiesmp.qtemouvemente) AS [Total de qtemouvemente],
StDev(sortiesmp.qtemouvemente) AS [Ecart de qtemouvemente],
Count(sortiesmp.qtemouvemente) AS [nbval qtemouvemente]
FROM sortiesmp
GROUP BY sortiesmp.codearticle
PIVOT Mid([datemvt],4,7);

3) exemple du pb pour AA0012 :
- j'ai 1 total sur janvier 07 de 73 et 1 total sur mai à 16
- j'ai un total global de 89 (pour 3 valeurs)
- j'ai une moyenne de 29.66 : (50+23+16)/3 alors que je veux avoir 44.5 :
(73+16)/2
- j'ai un écart-type de 17.35 au lieu de 40.30

1 réponse

Avatar
Patrice
bonjour,

Personnellement, je créerai une table intermediaire qui regrouperai les
données sur le mois et l'année, ensuite je créerai mon analyse croisée à
partir de cette table.


Bonjour à tous,

j'ai un pb avec le résultat donné par une requête analyse croisée.
Cette requête est basée sur la table sortiesmp qui contient les sorties de
stock effectuées sur nos matières premières sur une année (année glissante).
Je me retrouve donc avec un enregistrement par sortie avec pour chaque le
code article, la date du mouvement et la quantité.
J'utilise une requête analyse croisée de façon à avoir la somme des sorties
par mois et la somme, moyenne et écart-type sur 12 mois et ceci pour chaque
article. Pour être plus clair :
1) j'ai la somme des sorties pour janvier, février, mars, ...
2) la somme totale (en additionnant chaque mois)
3) la moyenne sur 12 mois (somme janvier + somme fev + ...) / 12
4) l'écart-type sur 12 mois (sur les valeurs de somme janvier, somme
février, ..., c'est-à-dire sur 12 valeurs)

Mon pb c'est que la moyenne et l'écart-type ne correspondent pas à ce que je
veux.
1) J'ai bien pour chaque article les sommes par mois .
2) J'ai bien la somme totale par article.
3) la moyenne et l'écart-type sont incorrects. En fait j'ai la moyenne et
l'écart-type par article de toutes les sorties et par par rapport aux totaux
mensuels. J'ai essayé de trouver la solution en vain ...

Est-ce que je veux faire est possible et si oui comment ?

Merci d'avance.

Anthony.

Ci-dessous quelques détails :
1) table d'origine :
codearticle date du mouvement quantité
AA0012 12/01/2007 50
AA0012 15/01/2007 23
AA0012 05/05/2007 16
AA0013 12/11/2006 12
AA0013 11/04/2007 80
....

2) Requête analyse croisée (présentation SQL pour plus de facilité) :
TRANSFORM Sum(sortiesmp.qtemouvemente) AS SommeDeqtemouvemente
SELECT sortiesmp.codearticle, Avg(sortiesmp.qtemouvemente) AS [Moyenne de
qtemouvemente], Sum(sortiesmp.qtemouvemente) AS [Total de qtemouvemente],
StDev(sortiesmp.qtemouvemente) AS [Ecart de qtemouvemente],
Count(sortiesmp.qtemouvemente) AS [nbval qtemouvemente]
FROM sortiesmp
GROUP BY sortiesmp.codearticle
PIVOT Mid([datemvt],4,7);

3) exemple du pb pour AA0012 :
- j'ai 1 total sur janvier 07 de 73 et 1 total sur mai à 16
- j'ai un total global de 89 (pour 3 valeurs)
- j'ai une moyenne de 29.66 : (50+23+16)/3 alors que je veux avoir 44.5 :
(73+16)/2
- j'ai un écart-type de 17.35 au lieu de 40.30