Bonjour à tous,
J'ai un souci sur une requête analytique :
Voici une extraction du résultat sur un client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select distinct client , id_aaaamm , sum(ca) over (partition by client,id_aaaamm) CA_M , sum(ca) over (partition by client order by id_aaaamm range between 100 preceding and 100 preceding) CA_M1 from table_vente v order by client, id_aaaamm
Je calcule la somme du CA pour le mois de la ligne, et le CA pour le même mois mais de l'année précédente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CLIENT ID_AAAAMM CA_M CA_M1 Client1 200601 4,39 Client1 200603 49,53 Client1 200605 33,03 Client1 200608 97,41 Client1 200701 -30,94 4,39 Client1 200705 91,81 33,03
Ce que j'aimerais faire, c'est d'ajouter à ce résultat les lignes qui n'ont pas de CA sur le mois de la ligne, mais qui en a pour le mois de l'année précédente. Ce qui donnerait ceci :
Je ne vois pas comment faire ca avec les fonctions analytiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CLIENT ID_AAAAMM CA_M CA_M1 Client1 200601 4,39 Client1 200603 49,53 Client1 200605 33,03 Client1 200608 97,41 Client1 200701 -30,94 4,39 Client1 200703 49,53 Client1 200705 91,81 33,03 Client1 200608 97,41
J'ai de plus essayé de faire un outer join avec une table de mois (quitte à afficher tous les mois, même ceux qui ont "null" sur les 2 colonnes CA, même si ca ne m'arrange pas en terme de volumétrie), mais ca ne marche pas.
Pour info, je suis sous oracle 10g.
Merci d'avance pour toute idée !
Adrien
Partager