bonjour,
comment totaliser des montants (SUM() ou autre) selon que la date est inférieure ou supérieure à une date donnée.
merci
bonjour,
comment totaliser des montants (SUM() ou autre) selon que la date est inférieure ou supérieure à une date donnée.
merci
En faisant un Select avec un From et une condition WHERE sur la date.
merci
Bien sur mais pour avoir la réponse dans une même requête ?
je voudrais, sans avoir à faire deux requêtes, obtenir la somme des mouvements qui répondent à une condition et ceux qui n'y répondent pas.
merci
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select sum(case when condition then col else 0 end ) c_ok , sum(case when condition then 0 else col end ) c_ko from table;
ou
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select sum(ok) c_ok , sum(ko) c_ko from ( select case when condition then col else 0 end ok , case when condition then 0 else col end ko from table);
Je ne suis pas certain de la première, je n'ai pas testé
grand merci,
toutefois la "colonne" indiquée est déja la somme d'une soustraction
exemple 1 er cas
et donc s'inscrit dans un "GROUP BY"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT sum(case when condition then NVL(SUM(DECODE(SENS, 1, MT_MN)) ,0) -NVL(SUM(DECODE(SENS, 2, MT_MN)) ,0) else 0 end ) c_ok FROM TABLE
merci
Un petit exemple qui se teste facilement sur le schéma SCOTT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 define DATE_LIMITE='01/01/1982' select sum(case when hiredate >= to_date('&DATE_LIMITE', 'DD/MM/YYYY') then 0 else sal end) SUP_DATE, sum(case when hiredate < to_date('&DATE_LIMITE', 'DD/MM/YYYY') then 0 else sal end ) INF_DATE from scott.emp;
J'imagine que tu veux les résultats dans deux colonnes et non deux lignes.
Tu peux faire comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT SUM(champ * decode(sign(date_ref-date), 1, 1, 0) somme_avant, SUM(champ * decode(sign(date_ref-date), 0, 1, -1, 1, 0) somme_apres FROM Table;
Edit> Grillé par ojo777, j'ai pas tenté les case dans le SUM, j'ai contourné à l'anciennemais le principe est le même
Partager