select
TD.TD001 訂單單別,
TD.TD002 訂單單號,
TD.TD003 訂單序號,
TD.TD004 品號,
TD.TD005 品名,
TD.TD006 規格,
TD.TD007 倉庫,
TC.TC004 客戶編號,
TC.TC012 客戶PO,
TC.TC003 訂單日期,
TH.TH008 送貨數量,
MC.MC007 庫存數量
from BW_COPTD AS TD
LEFT JOIN BW_INVMC AS MC ON MC.MC001=TD.TD004 AND MC.MC002=TD.TD007
left join BW_COPTC as TC ON TC.TC001=TD.TD001 AND TD.TD002=TC.TC002
left join BW_COPTH AS TH ON TD.TD001=TH.TH001 AND TD.TD002=TH.TH002 AND TD.TD003=TH.TH003
uj5u.com熱心網友回復:
你了解一下 defaultIfEmptyhttps://www.cnblogs.com/sjqq/p/8385326.html
uj5u.com熱心網友回復:
先理清表之間的關系,linq的幾個關鍵字語法和sql差不多的。uj5u.com熱心網友回復:
This is just simple `LEFT JOIN` for LINQ,check the samples on MSDN: https://docs.microsoft.com/en-us/dotnet/csharp/linq/perform-left-outer-joins
uj5u.com熱心網友回復:
yep. linq does not support joinning with multi-condition, and you should use composite type as the key.
uj5u.com熱心網友回復:
from TD in BW_COPTDjoin MC in BW_INVMC ON new {MC001=MC.MC001,MC002=MC.MC002 } equals new {MC001=TD.TD004 ,MC002=TD.TD007 } into MCJoin
join TC in BW_COPTC on new {TC001=TC.TC001,TD001=TD.TD001} equals new {TC001= TD.TD002,TD001=TC.TC002 }
join TH in BW_COPTH on new {TD001=TD.TD001, TD002=TD.TD002,TD003=TD.TD003} equals new { TD001=TH.TH001,TD002=TH.TH002,TD003=TH.TH003}
from MC in MCJoin.DefaultIfEmpty()
uj5u.com熱心網友回復:
from TD in BW_COPTDjoin MC in BW_INVMC ON new {MC001=MC.MC001,MC002=MC.MC002 } equals new {MC001=TD.TD004 ,MC002=TD.TD007 } into MCJoin
join TC in BW_COPTC on new {TC001=TC.TC001,TD001=TD.TD001} equals new {TC001= TD.TD002,TD001=TC.TC002 }
join TH in BW_COPTH on new {TD001=TD.TD001, TD002=TD.TD002,TD003=TD.TD003} equals new { TD001=TH.TH001,TD002=TH.TH002,TD003=TH.TH003}
from MC in MCJoin.DefaultIfEmpty()
select new {
訂單單別=TD.TD001 ,
.........................................
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/62050.html
標籤:LINQ
上一篇:c#實體與物件有啥區別
下一篇:萌新求助。
