我正在处理带有查询表的sql查询
tblProducts (ProductID,Name,Code,Features)
tblStock (StockID,ProductID,Stock,Date)
tblOrderDetails(DetailID,ProductID,ProductQuantity,Date)
用户在其库存到达时输入任何产品的库存。当用户购买任何数量的任何产品时,其详细信息将存储在tblOrderDetails表中。我想要按ProductID的总库存产品组,以及每个产品组的订单明智的Product明智的。为此,我使用了以下查询;-
SELECT
tblStock.ProductID,
ISNULL(SUM(tblOrderDetails.Qty), 0) AS used,
SUM(tblStock.Stock) AS st
FROM tblStock
INNER JOIN tblProducts
ON tblProducts.ProductID = tblStock.ProductId
LEFT OUTER JOIN tblOrderDetails
ON tblOrderDetails.ProductID = tblStock.ProductId
GROUP BY tblStock.ProductID
在订单明细表中,我有两个包含两个产品ID的订单。上面的查询显示的是一个产品的订购产品总和,而不是第二个产品。如何获得合适的订购产品ProductID以及总库存量以及ProductID的智慧。我该如何做到这一点?
您不能仅使用产品ID连接表,因为同一产品有多个订单和库存会增加您的结果,因此您必须例如执行以下操作:
; with
O as (select ProductId, SUM(Qty) AS used from tblOrderDetails group by ProductId),
S as (select ProductId, SUM(Stock) as st from tblStock group by ProductId)
SELECT
P.ProductID,
ISNULL(O.used), 0) AS used,
S.st
FROM tblProducts P
LEFT OUTER JOIN O on O.ProductId = P.ProductId
LEFT OUTER JOIN S on S.ProductID = P.ProductId
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句