Hi,
I have a very long and complex query - so I cannot post it here in full.
It works fine, until I add the last join statement (highlighted in yellow)
-----------------------------------
FROM dbo.OITW T0
LEFTJOIN OPRJ T2 ON T0.WhsCode = T2.PrjCode
LEFTJOIN OITM T1 ON T0.ItemCode = T1.ItemCode
LEFTJOIN cteRDR ON T0.ItemCode = cteRDR.RDR_ItemCode
LEFTJOIN cteDLN ON cteRDR.RDR_U_LineNum= cteDLN.DLN_U_LineNum
LEFTJOIN cteRDN ON cteRDR.RDR_U_LineNum= cteRDN.RDN_U_LineNum
LEFTJOIN cteINV ON cteRDR.RDR_U_LineNum= cteINV.INV_U_LineNum
LEFTJOIN cteRIN ON cteRDR.RDR_U_LineNum= cteRIN.RIN_U_LineNum
LEFTJOIN ctePOR ON cteRDR.RDR_U_LineNum= ctePOR.POR_U_LineNum
LEFTJOIN ctePDN ON cteRDR.RDR_U_LineNum= ctePDN.PDN_U_LineNum
LEFTJOIN cteRPD ON cteRDR.RDR_U_LineNum= cteRPD.RPD_U_LineNum
LEFTJOIN ctePCH ON cteRDR.RDR_U_LineNum= ctePCH.PCH_U_LineNum
LEFTJOIN cteRPC ON cteRDR.RDR_U_LineNum= cteRPC.RPC_U_LineNum
LEFTJOIN ctePQTIn ON cteRDR.RDR_U_LineNum= ctePQTIn.PQTIn_U_LineNum
LEFTJOIN cteWTQIn ON cteRDR.RDR_U_LineNum= cteWTQIn.WTQIn_U_LineNum
LEFTJOIN cteWTRIn ON cteRDR.RDR_U_LineNum= cteWTRIn.WTRIn_U_LineNum
LEFTJOIN cteWTQOut ON cteRDR.RDR_U_LineNum= cteWTQOut.WTQOut_U_LineNum
LEFTJOIN cteWTROut ON cteRDR.RDR_U_LineNum= cteWTROut.WTROut_U_LineNum
LEFTJOIN cteIGNtfr ON T0.ItemCode = cteIGNtfr.IGNtfr_ItemCode
LEFTJOIN cteIGEtfr ON T0.ItemCode = cteIGEtfr.IGEtfr_ItemCode
LEFTJOIN cteIGNadj ON T0.ItemCode = cteIGNadj.IGNadj_ItemCode
LEFTJOIN cteIGEadj ON T0.ItemCode = cteIGEadj.IGEadj_ItemCode
LEFTJOIN cteOnHand2ON T0.ItemCode = cteOnHand2.[Item Code]
FULLJOIN cteOnHand3 ON cteRDR.RDR_U_LineNum= cteOnHand3.[U_LineNum] <<<<< added this line
WHERE T0.WhsCode= @Project
-----------------------
I need a FULL JOIN because cteOnHand3 may contain values for [U_LineNum] that are not found in other tables and I need all the rows in all tables and cte's to be returned.
I use a lot of Common Table Expressions (prefixed cte). Those not so prefixed are real tables.
MY PROBLEM
My problem is that it appears that the FULL JOIN is not being made, as [U_LineNum] found incteOnHand3 only are not returned.
What could be the problem? As my question is not specific, I can only expect general answers, and I am thankful
for whatever tips you may give to help me investigate further. My query is too long and complex to post here.
Is this the correct way to code for FULL JOIN?
Just as a test, I replaced the FULL JOIN with CROSS JOINED, and all rows ( a X b) are returned as expected.
Best Regards,
Leon Lai