Quantcast
Channel: Transact-SQL forum
Viewing all articles
Browse latest Browse all 23857

FULL JOIN does not work as expected

$
0
0

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



Viewing all articles
Browse latest Browse all 23857

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>