Left join(select ... where champ = champ du select principal Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
E
ErickChbnt
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 26 novembre 2019
Version d'Excel : 2013

Message par ErickChbnt » 26 novembre 2019, 06:14

Bonjour
Nouveau sur le site, je n'ai pas su créer un titre simple, désolé.
Donc, j'ai un SELECT sur ma table principale
un LEFT JOIN sur 1ére table secondaire
un LEFT JOIN sur 2nde table secondaire
un LEFT JOIN (SELECT) sur 3ème table secondaire
WHERE...

mon problème est que je veux, dans le LEFT JOIN SELECT... filtrer les enregistrements par rapport a la valeur d'une date du select principal et là, ça plante (The multi-part identifier "ctrh.FVDT - Valid from" could not be bound)

en espérant être plus clair,
merci d'avance pour votre aide
SELECT ctrh.[CONO - Environment] Cono
      ,ctrh.[AGNB - Agreement number] Ctr
      ,ctrh.[SUNO - Supplier] Frn
      ,ctrh.[FVDT - Valid from] 'Valide du'
...
...
FROM [Purchase agreement header] ctrh
  LEFT JOIN [Purchase agreement lines] ctrln
...
...
LEFT JOIN [Purchase agreement prices] ctrpu
...
...
  LEFT JOIN
		(
		SELECT [FACI - Facility],[SUNO - Supplier],[ITNO - Item number],SUM([RVQA - Received quantity]) QtRecue
			FROM [Purchase order line]
			WHERE [SUNO - Supplier]='F1570' and [RVQA - Received quantity]>0 [u]and [CODT - Confirmed delivery date] >= ctrh.[FVDT - Valid from][/u]
			GROUP BY [FACI - Facility],[SUNO - Supplier],[ITNO - Item number]
		) 
			AS t2 ON ...
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'131
Appréciations reçues : 375
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 26 novembre 2019, 10:30

Bonjour,

il me semble que ton WHERE ctrh.FVDT - Valid from ... est une condition qui se rapporte au JOIN et non au SELECT, donc selon moi tu dois
soit différencier le WHERE qui se rapporte au SELECT du ON qui se rapporte au JOIN.

left join (select .... where condition du select) ON condition du left join
soit ajouter la table ctrh dans le FROM du SELECT de ton LEFT JOIN si la condition se rapporte au SELECT.
E
ErickChbnt
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 26 novembre 2019
Version d'Excel : 2013

Message par ErickChbnt » 26 novembre 2019, 13:04

merci h2so4
j'ai opté pour la 2nde solution et ça semble fonctionner.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message