SELECT DISTINCT SOM.CompanyID,
SOM.BranchID,
SOM.SOID,
SOM.TranDocNo,
SOM.DocDate,
CM.CustomerName,
STM.SaleTypeName,
SOM.NetAmount,
SOM.TotQty
FROM tblSODetails SOD WITH (NOLOCK)
INNER JOIN tblSOMaster SOM WITH (NOLOCK) ON (SOD.SOID = SOM.SOID)
INNER JOIN tblSaleTypeMaster STM WITH (NOLOCK) ON (SOM.SaleTypeID = STM.SaleTypeID)
INNER JOIN tblCustomerMaster CM WITH (NOLOCK) on (SOM.CustomerID = CM.CustomerID)
LEFT OUTER JOIN tblSOReturnDetails SORD WITH (NOLOCK) ON (SOD.SODetID = SORD.SODetID)
LEFT OUTER JOIN tblSOReturnMaster SORM WITH (NOLOCK) ON (SORD.SOReturnID = SORM.SOReturnID)
LEFT OUTER JOIN tblOutwardMaster OM WITH (NOLOCK) ON (SOM.TranDocNo = OM.RefTranDocNo)
LEFT OUTER JOIN tblOutwardDetails OD WITH (NOLOCK) ON (OM.OutwardID = OD.OutwardID AND OD.ItemID = SOD.ItemID)
WHERE SOM.CompanyID = 1
and SOM.BranchID = 1
and SOM.IsOutward = 0
and SOM.DocTypeID = 3
and SOM.IsSOReturn = 0
and SOM.IsDealer = 0
and STM.IsStockEffect = 1
and STM.IsSaleOrder = 1
and SOM.Status = 'AP'
and CM.IsBlackListed = 0
AND SOD.Qty > (ISNULL(OD.Qty,0) + ISNULL(SORD.Qty,0))
如何在窗体的LINQ查询.. ,具体的最后一道Query.To写在LINQ查询我怎么可以这样写SQL查询到LINQ查询
我写这篇文章写这个SQL查询查询来解决我的问题。
(from SOD in db.tblSODetails
join SOM in db.tblSOMasters on SOD.SOID equals SOM.SOID
join STM in db.tblSaleTypeMasters on SOM.SaleTypeID equals STM.SaleTypeID
SOM.CustomerID等于CM.CustomerID 在SOD.SODetID db.tblSOReturnDetails加入SORD等于SORD.SODetID到SORD_join
from SORD in SORD_join.DefaultIfEmpty()
from CM in db.tblCustomerMasters.Where(
CM => CM.CustomerID == SOM.CustomerID && (CM.IsBlackListed == false))
SOD.SODetID).DefaultIfEmpty()
join SORM in db.tblSOReturnMasters on SORD.SOReturnID equals SORM.SOReturnID into SORM_join
from SORM in SORM_join.DefaultIfEmpty()
join OM in db.tblOutwardMasters on new { TranDocNo = SOM.TranDocNo } equals
new { TranDocNo = OM.RefTranDocNo } into OM_join
from OM in OM_join.DefaultIfEmpty()
join OD in db.tblOutwardDetails on new { OM.OutwardID, SOD.ItemID } equals
new { OD.OutwardID, OD.ItemID } into OD_join
from OD in OD_join.DefaultIfEmpty()
where (SOM.CompanyID == compID)
&& (SOM.BranchID == BranchID)
&& ((isOutward == -1) || (SOM.IsOutward == (isOutward == 1 ? true : false)))
&& (SOM.DocTypeID == 3)
&& (SOM.Status == "AP")
&& (SOM.IsSOReturn == false)
&& (SOM.IsDealer == false)
&& (STM.IsStockEffect == true)
&& (STM.IsSaleOrder == true)
&& ((SOM.TranDocNo.Contains(strDocTypeCode)))
&& SOD.Qty > (((System.Decimal?)(OM.TotQty) ?? (System.Decimal?)0) + ((System.Decimal?)(SORM.TotQty) ?? (System.Decimal?)0))
select new
{
SOM.CompanyID,
SOM.BranchID,
SOM.SOID,
TranDocNo = SOM.TranDocNo,
DocDate = SOM.DocDate,
CustomerName = CM.CustomerName == null ? "" : CM.CustomerName,
DealerName = "",
STM.SaleTypeName,
NetAmount = SOM.NetAmount,
TotQty = SOM.TotQty
}
).Distinct();
到目前为止您尝试了什么? – Daniel
问题没有显示任何研究工作,请告诉我们你有什么尝试。 – gofr1
使用此代码获得解决方案。 1. SOD.Qty>(((System.Decimal?)(OD.TotQty)??(System.Decimal?)0)+((System.Decimal?)(SORD.TotQty)??(System.Decimal?)0)) –