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 : 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,
...
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
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
C_CLIENT....MOIS  ANNEE
125               01      2008
...
Est-ce faisable ?
Merci pour toute suggestion.