[步骤]
SELECT TOP 5 ( CASE Isnull(s1.SupplierName, '')WHEN '' THEN s2.SupplierName
ELSE s1.SupplierName
END ) AS SupplierName,
c.AddTime AS d_time,
b.AddTime AS cgtime,
de.AddTime AS pdAddTime,
de.FirstCheckTime,
de.LastCheckTime,
de.FirstPutTime,
de.FirstBuyTime,
pdsl.AddTime AS orderTime,
de.UpdateAdminName,
a.ActualBuyNum,
de.SingleNum,
a.ActualProductPrice,
a.UnitShipFee,
b.P_AdminName,
Isnull(pdsl.BuyerName, '') AS SingleBuyerName,
pdsl.Single_NO,
(SELECT Max(t.Addtime)
FROM RB_Procurement_Detail_SingleList t
WHERE t.CustomerID = b.CustomerID
AND t.P_Code = b.P_Code) maxSingleAddTime,
(SELECT Max(t2.Addtime)
FROM RB_Procurement_Detail_BuyList t2
WHERE t2.CustomerID = b.CustomerID
AND t2.P_Code = b.P_Code) maxBuyAddTime,
(SELECT Min(t3.Addtime)
FROM RB_Procurement_Detail_PutList t3
WHERE t3.CustomerID = b.CustomerID
AND t3.P_Code = b.P_Code
AND t3.SKU = '13211761') minPutAddTime,
(SELECT Max(t4.ReceiptTime)
FROM RB_Procurement_ReceiptAndStorage t4
WHERE t4.CustomerID = a.CustomerID
AND t4.ListNo = a.ListNo
AND t4.SKU = a.SKU) maxReceiptTime
FROM dbo.RB_Procurement_Detail_BuyList_Detail AS a (nolock)
LEFT JOIN dbo.RB_Procurement_Detail_BuyList AS b (nolock)
ON a.ListNo = b.ListNo
LEFT JOIN RB_Procurement_List AS c (nolock)
ON c.P_Code = a.P_Code
AND a.CustomerID = c.CustomerID
LEFT JOIN RB_Product_Supplier AS s1 (nolock)
ON a.SupplierID = s1.ID
AND a.CustomerID = s1.CustomerID
LEFT JOIN RB_Product_Supplier AS s2 (nolock)
ON c.SupplierID = s2.ID
AND c.CustomerID = s2.CustomerID
LEFT JOIN RB_Procurement_Detail AS de (nolock)
ON a.P_Code = de.P_Code
AND a.SKU = de.SKU
LEFT JOIN RB_Procurement_Detail_SingleList pdsl WITH(nolock)
ON pdsl.CustomerID = b.CustomerID
AND pdsl.P_Code = b.P_Code
AND pdsl.Single_NO = b.Single_NO
WHERE a.SKU = '13211761'
AND a.ActualProductPrice > 0
ORDER BY b.AddTime DESC
SELECT TOP 10 ( CASE Isnull(s1.SupplierName, '')
WHEN '' THEN s2.SupplierName
ELSE s1.SupplierName
END ) AS SupplierName,
c.AddTime AS d_time,
b.AddTime AS cgtime,
de.AddTime AS pdAddTime,
de.FirstCheckTime,
de.LastCheckTime,
de.FirstPutTime,
de.FirstBuyTime,
pdsl.AddTime AS orderTime,
de.UpdateAdminName,
a.ActualBuyNum,
de.SingleNum,
a.ActualProductPrice,
a.UnitShipFee,
b.P_AdminName,
Isnull(pdsl.BuyerName, '') AS SingleBuyerName,
pdsl.Single_NO,
(SELECT Max(t.Addtime)
FROM RB_Procurement_Detail_SingleList t
WHERE t.CustomerID = b.CustomerID
AND t.P_Code = b.P_Code) maxSingleAddTime,
(SELECT Max(t2.Addtime)
FROM RB_Procurement_Detail_BuyList t2
WHERE t2.CustomerID = b.CustomerID
AND t2.P_Code = b.P_Code) maxBuyAddTime,
(SELECT Min(t3.Addtime)
FROM RB_Procurement_Detail_PutList t3
WHERE t3.CustomerID = b.CustomerID
AND t3.P_Code = b.P_Code
AND t3.SKU = '21851167') minPutAddTime,
(SELECT Max(t4.ReceiptTime)
FROM RB_Procurement_ReceiptAndStorage t4
WHERE t4.CustomerID = a.CustomerID
AND t4.ListNo = a.ListNo
AND t4.SKU = a.SKU) maxReceiptTime
FROM dbo.RB_Procurement_Detail_BuyList_Detail AS a (nolock)
LEFT JOIN dbo.RB_Procurement_Detail_BuyList AS b (nolock)
ON a.ListNo = b.ListNo
LEFT JOIN RB_Procurement_List AS c (nolock)
ON c.P_Code = a.P_Code
AND a.CustomerID = c.CustomerID
LEFT JOIN RB_Product_Supplier AS s1 (nolock)
ON a.SupplierID = s1.ID
AND a.CustomerID = s1.CustomerID
LEFT JOIN RB_Product_Supplier AS s2 (nolock)
ON c.SupplierID = s2.ID
AND c.CustomerID = s2.CustomerID
LEFT JOIN RB_Procurement_Detail AS de (nolock)
ON a.P_Code = de.P_Code
AND a.SKU = de.SKU
LEFT JOIN RB_Procurement_Detail_SingleList pdsl WITH(nolock)
ON pdsl.CustomerID = b.CustomerID
AND pdsl.P_Code = b.P_Code
AND pdsl.Single_NO = b.Single_NO
WHERE a.SKU = '21851167'
AND a.ActualProductPrice > 0
ORDER BY b.AddTime DESC
[结果]
[期望]
检查一下所有用的表,补全nolock