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 :
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
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
Le nombre de résultats est correct !
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
J'avais tenté un bout de code que SQL-Server rejetait en bloc :
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.
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
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
Partager