Oracle10g - Jointure particulière
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 :
Code:
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,
... |
Le SELECT de cette requête me renvoie par exemple :
Code:
1 2 3 4 5 6
|
C_CLIENT....MOIS ANNEE
125 01 2008
125 01 2008
125 01 2008
... |
Pourquoi ? Car en fait dans ces 3 cas la date effective a un jour différent :
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 :
Code:
1 2 3 4
|
C_CLIENT....MOIS ANNEE
125 01 2008
... |
Est-ce faisable ?
Merci pour toute suggestion.