Bonjour à tous !

J'ai réalisé une vue qui se base sur 3 autres vues (je pensais que ça me résoudrait un autre problème et au bout du compte c'est plus facile à maintenir). Sur cette vue "Racine" j'ai une jointure qui me pose un réel problème :

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
FROM
Vue_Spend_Analysis_Branche1 AS [BRANCHE1],
PCH1
	INNER JOIN OPCH
	ON PCH1.DOCENTRY = OPCH.DOCENTRY
	LEFT OUTER JOIN OSLP
	ON PCH1.SLPCODE = OSLP.SLPCODE
	LEFT OUTER JOIN OACT
	ON PCH1.ACCTCODE = OACT.ACCTCODE
	LEFT OUTER JOIN OPRJ
	ON PCH1.PROJECT = OPRJ.PRJCODE
	LEFT OUTER JOIN OOCR
	ON PCH1.OCRCODE = OOCR.OCRCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche2 AS [BRANCHE2]
	ON PCH1.ITEMCODE = BRANCHE2.ITEMCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche3 AS [BRANCHE3]
	ON PCH1.BASEREF = BRANCHE3.TrgetEntry AND PCH1.BASELINE = BRANCHE3.LINENUM
Cette jointure me remonte énormément trop de résultat. J'ai isolé le problème car en faisant ça
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
PCH1
	INNER JOIN OPCH
	ON PCH1.DOCENTRY = OPCH.DOCENTRY
	LEFT OUTER JOIN OSLP
	ON PCH1.SLPCODE = OSLP.SLPCODE
	LEFT OUTER JOIN OACT
	ON PCH1.ACCTCODE = OACT.ACCTCODE
	LEFT OUTER JOIN OPRJ
	ON PCH1.PROJECT = OPRJ.PRJCODE
	LEFT OUTER JOIN OOCR
	ON PCH1.OCRCODE = OOCR.OCRCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche2 AS [BRANCHE2]
	ON PCH1.ITEMCODE = BRANCHE2.ITEMCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche3 AS [BRANCHE3]
	ON PCH1.BASEREF = BRANCHE3.TrgetEntry AND PCH1.BASELINE = BRANCHE3.LINENUM
Le nombre de résultats est correct !

J'avais tenté un bout de code que SQL-Server rejetait en bloc :
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
 
FROM
OPCH
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche1 AS [BRANCHE1]
	ON OPCH.CARDCODE = BRANCHE1.CARDCODE
PCH1
	INNER JOIN OPCH
	ON PCH1.DOCENTRY = OPCH.DOCENTRY
	LEFT OUTER JOIN OSLP
	ON PCH1.SLPCODE = OSLP.SLPCODE
	LEFT OUTER JOIN OACT
	ON PCH1.ACCTCODE = OACT.ACCTCODE
	LEFT OUTER JOIN OPRJ
	ON PCH1.PROJECT = OPRJ.PRJCODE
	LEFT OUTER JOIN OOCR
	ON PCH1.OCRCODE = OOCR.OCRCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche2 AS [BRANCHE2]
	ON PCH1.ITEMCODE = BRANCHE2.ITEMCODE
	LEFT OUTER JOIN Vue_Spend_Analysis_Branche3 AS [BRANCHE3]
	ON PCH1.BASEREF = BRANCHE3.TrgetEntry AND PCH1.BASELINE = BRANCHE3.LINENUM
SQL-Server me rejette car il y a 2 déclarations de la table OPCH, seulement moi j'ai bien besoin de relié PCH1 <=> OPCH ainsi que OPCH <=> BRANCHE1.

J'espère que j'ai été à peu près clair, merci d'avance pour votre aide (parce que j'en ai vraiment besoin. T_T