"Désaccumuler" données mensuelles en une requete

Fermé
Galven Messages postés 23 Date d'inscription dimanche 27 juin 2010 Statut Membre Dernière intervention 21 août 2018 - Modifié le 21 août 2018 à 21:33
Galven Messages postés 23 Date d'inscription dimanche 27 juin 2010 Statut Membre Dernière intervention 21 août 2018 - 21 août 2018 à 21:44
Bonjour,


J'ai une table constituée de deux champs:

AAAAMM: date format AAAAMM
TOTAL

Cette table contient un total accumulé pour chaque mois. Mars correspond au total de Janvier à fin Mars.
Je veux une requete me donnant le total non accumulé par mois: Mars serait alors Mars - (Janvier + Février).


Ceci est un exemple simplifié. La table en question contient 5 années et une cinquantaine d'agrégats financiers.

Une solution svp ? Merci !

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
21 août 2018 à 21:43
Bonjour,

Déjà, vu ce que tu nous dis,

Mars serait alors Mars - (Janvier + Février). ...

Mars serait alors Mars - Février (puisque cumulé, février contient déjà Janvier + Février).

Un truc du genre peut-être (pas testé)
SELECT AAAAMM
       TOTAL - TOTAL OVER (ORDER BY AAAAMM ROWS UNBOUNDED PRECEDING) AS TOTAL_DECUMULE
FROM dbo.foo
ORDER BY AAAAMM;

Mais d'autres méthodes existent, via des INNER JOIN ou l'utilisation de WITH
https://www.codeproject.com/Articles/300785/Calculating-simple-running-totals-in-SQL-Server




0
Galven Messages postés 23 Date d'inscription dimanche 27 juin 2010 Statut Membre Dernière intervention 21 août 2018 2
21 août 2018 à 21:44
Oops... Mars = Mars - Fevrier oui ! Autant pour moi

Top merci !
0