Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
JOIN Error
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Titre:
Divers
Thread ID:
01435313
Message ID:
01435315
Vues:
38
>I'm getting the error "The objects "MOC" and "MOC" in the FROM clause have the same exposed names. Use correlation names to distinguish them."
>
>I don't know what this means.
>
>Here's my query:
>
>
>SELECT	RQ_MOCNUMBER, 
>		RQ_MOCREFNO, 
>		RQ_IMKEY, 
>		RQ_DATE_REQ, 
>		RQ_DATE_PROM, 
>		SUM(CASE WHEN sf.BookedQty IS NULL THEN 0 ELSE
>			CASE WHEN sf.RQ_DATE_REQ >= RQ_DATE_REQ AND sf.RQ_DATE_REQ <= RQ_DATE_PROM THEN sf.BookedQty ELSE 0 END
>			END) AS PeriodOrderedQty
>	FROM OH
>	INNER JOIN MOC ON OH.OH_NUMBER = MOC.MOC_OHNUMBER
>	INNER JOIN MOC ON MOC.MOC_OHNUMBER = RQ.RQ_MOCNUMBER
>	INNER JOIN MOC ON MOC.MOC_REF_NO = RQ.RQ_MOCREFNO
>	LEFT JOIN v_SalesForecastBookedQtyByDate sf ON RQ.RQ_IMKEY = sf.RQ_IMKEY
>	GROUP BY RQ.RQ_MOCNUMBER, RQ.RQ_MOCREFNO, RQ.RQ_IMKEY, RQ.RQ_DATE_REQ, RQ.RQ_DATE_PROM
>	HAVING RQ.RQ_MOCNUMBER LIKE 'FCST*'
>	ORDER BY RQ.RQ_MOCNUMBER, RQ.RQ_MOCREFNO, RQ.RQ_IMKEY, RQ.RQ_DATE_REQ, RQ.RQ_DATE_PROM
>
Kevin,

This is where the problem is:
INNER JOIN MOC ON OH.OH_NUMBER = MOC.MOC_OHNUMBER
	INNER JOIN MOC ON MOC.MOC_OHNUMBER = RQ.RQ_MOCNUMBER
	INNER JOIN MOC ON MOC.MOC_REF_NO = RQ.RQ_MOCREFNO
You can not join the same table under the same alias multiple times.

You need to use different aliases if you want to self join the same table, e.g.
INNER JOIN MOC ON OH.OH_NUMBER = MOC.MOC_OHNUMBER
	INNER JOIN MOC MOC1 ON MOC1.MOC_OHNUMBER = RQ.RQ_MOCNUMBER
	INNER JOIN MOC MOC2 ON MOC2.MOC_REF_NO = RQ.RQ_MOCREFNO
Also, it looks like you didn't really want to join MOC table multiple times, you wanted to join based on multiple fields, right?
INNER JOIN MOC ON OH.OH_NUMBER = MOC.MOC_OHNUMBER
AND  MOC.MOC_OHNUMBER = RQ.RQ_MOCNUMBER
AND MOC.MOC_REF_NO = RQ.RQ_MOCREFNO
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform