Bonjour,
Je travaille sous Oracle 10g et ai besoin de faire de l'agrégation de données.
J'ai donc une table dédiée indépendante pour récupérer l'agrégation de mon MCD. Lorsque je veux remplir cette table j'ai un problème de jointure.
Mon problème est de faire un GROUP BY sur une année et un mois sachant que je fais une jointure sur une date :
Le SELECT de cette requête me renvoie par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 INSERT INTO AGREGATION_PNB(C_CLIENT,...,MOIS,ANNEE,...) SELECT T1.C_ID_CLIENT, ... to_char(T1.D_DATE_EFFECTIVE,'mm') AS MOIS, to_char(T1.D_DATE_EFFECTIVE,'yyyy') AS ANNEE, ... FROM TABLE1 T1 LEFT OUTER JOIN TABLE2 T2 ON to_char(T1.D_DATE_EFFECTIVE,'mm') = to_char(T2.D_DATE_EFFECTIVE,'mm') AND to_char(T1.D_DATE_EFFECTIVE,'yyyy') = to_char(T2.D_DATE_EFFECTIVE,'yyyy') GROUP BY T1.C_ID_CLIENT, ... T1.D_DATE_EFFECTIVE, ...
Pourquoi ? Car en fait dans ces 3 cas la date effective a un jour différent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 C_CLIENT....MOIS ANNEE 125 01 2008 125 01 2008 125 01 2008 ...
02/01/2008
03/01/2008
04/01/2008
En réalité, ce que je voudrais donc c'est n'avoir qu'une seule ligne et donc que ce soit regroupé par client, mois et année, donc :
Est-ce faisable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 C_CLIENT....MOIS ANNEE 125 01 2008 ...
Merci pour toute suggestion.
Partager