Bonjour,
J'ai une requête relativement compliquée (en tout cas pour moi) entre 8 tables (un select)

Je dois remonter un certain nombre de données + la somme de chaque tender (moyen de payement).

Le problème est que naturellement, mon SUM se multiplie... 8 fois...
J'ai parcouru des forums à la recherche de la solution et je retrouve des solutions de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select .....
from ( ...group by on invoice) a, (...group by on payment) b
where a.custid=b.custid
Mais la j'ai 8 tables et 263 champs, si je dois mettres tous les champs dans le select + tous les champs dans le from ca va faire un peu lourd et je ne vois pas comment faire d'ailleurs.

J'ai essayé les LEFT OUTER JOIN mais ca ne marche pas.

Ma requête se présente comme ceci :

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
16
17
18
19
20
SELECT 
i.invc_sid AS invc_sid,	
...
SUM(CASE WHEN ( t.tender_type =  10)  THEN t.amt  END) AS GiftCard,	
SUM(CASE WHEN ( t.tender_type =  11)  THEN t.amt  END) AS DebitCard,	
SUM(CASE WHEN ( t.tender_type =  12)  THEN t.amt  END) AS FC,	
SUM(CASE WHEN ( t.tender_type =  13)  THEN t.amt  END) AS Traveler,	
SUM(CASE WHEN ( t.tender_type =  14)  THEN t.amt  END) AS CheqFC
FROM 
INVOICE i,	
INVC_COMMENT ic,	
INVC_TENDER t,	
...
WHERE
i.invc_sid		=	ic.invc_sid (+)
AND	i.invc_sid	=	t.invc_sid (+)
AND	i.invc_sid	=	c.invc_sid (+)	
...
GROUP BY 
i.invc_sid
Je cherche donc comment faire cette jointure pour que ca marche...
Merci de votre aide.