DECLARE @STARTTIME DATETIME
SELECT @STARTTIME = MAX(盘点时间) FROM RJ_SupplierBalance
SELECT
TA.名称,
TA.余额- ISNULL(TC.金额,0) AS 账户余额
FROM RJ_SupplierBalance TA
LEFT JOIN
(SELECT TB.[代码],SUM(TB.[总金额]) AS [金额] FROM
(SELECT
QH_Supplier.FBillNo AS [代码],
CASE
WHEN QH_RawMaterial.FName LIKE '%自提%'
THEN SUM(QH_PurchCalculate.FNumPlan*QH_PurchCalculateContract.FPrice)
ELSE SUM(QH_PurchCalculate.FNetWeight*QH_PurchCalculateContract.FPrice)
END AS [总金额]
FROM QH_Supplier
LEFT JOIN QH_PurchCalculate ON QH_Supplier.FID = QH_PurchCalculate.FSupplierID
LEFT JOIN QH_PurchCalculateContract on QH_PurchCalculateContract.FID = QH_PurchCalculate.FID
LEFT JOIN QH_RawMaterial ON QH_RawMaterial.FID = QH_PurchCalculate.FItemID
WHERE
QH_PurchCalculate.FCancel <>1 AND
QH_PurchCalculate.FDeleted <> 1 AND
QH_Supplier.FBillNo NOT IN ('00000') AND
QH_PurchCalculate.FSecondTime >= @STARTTIME
GROUP BY
QH_Supplier.FBillNo,QH_RawMaterial.FName
) AS TB
GROUP BY TB.[代码]
) AS TC
ON TA.代码 = TC.代码
MSSQL三层嵌套实现供应商余额查询
于 2022-06-14 18:40:00 首次发布