SQL 加入总和
SQL SUM ON JOIN
先生,我有 3 SQL tables 即库存、采购和销售。
在库存 table 中,我有 SKU、数量、MRP 等字段
在购买 table 中,我有 SKU、purch_qty、purch_date 等字段。
在已售出的 table 中,我有 SKU、sold_qty、sold_date 等字段
我的查询是当我想创建一个视图时,我可以在其中查看所有初始数量为 sold_qty、puch_qty、availabe_Qty 的 SKU,例如(SKU,initial_qty, purchased_qty, sold_qty, stock_availabe)
我尝试在 SKU 上加入这些 table,但结果是数量的两倍。
你能帮我解决这个问题吗?
我的sql查询码是
SELECT stk.id, stk.sku, SUM(stk.qty) AS Initial_Qty, SUM(pur.qty) AS Purch_Qty, SUM(sld.qty) AS Sold_Qty
FROM dbo.stock AS stk LEFT OUTER JOIN
dbo.sold AS sld ON stk.sku = sld.sku LEFT OUTER JOIN
dbo.purchase AS pur ON stk.sku = pur.sku
GROUP BY stk.id, stk.sku
基本上,您需要在加入之前在子查询中进行聚合。您想要的逻辑应该如下所示:
select st.sku, st.qty stock_qty, pu.purch_qty, so.sold_qty
from stock st
left join (select sku, sum(purch_qty) purch_qty from purchase group by sku) pu
on pu.sku = st.sku
left join (select sku, sum(sold_qty) sold_qty from sold group by sku) so
on so.sku = st.sku
先生,我有 3 SQL tables 即库存、采购和销售。 在库存 table 中,我有 SKU、数量、MRP 等字段 在购买 table 中,我有 SKU、purch_qty、purch_date 等字段。 在已售出的 table 中,我有 SKU、sold_qty、sold_date 等字段
我的查询是当我想创建一个视图时,我可以在其中查看所有初始数量为 sold_qty、puch_qty、availabe_Qty 的 SKU,例如(SKU,initial_qty, purchased_qty, sold_qty, stock_availabe)
我尝试在 SKU 上加入这些 table,但结果是数量的两倍。
你能帮我解决这个问题吗?
我的sql查询码是
SELECT stk.id, stk.sku, SUM(stk.qty) AS Initial_Qty, SUM(pur.qty) AS Purch_Qty, SUM(sld.qty) AS Sold_Qty
FROM dbo.stock AS stk LEFT OUTER JOIN
dbo.sold AS sld ON stk.sku = sld.sku LEFT OUTER JOIN
dbo.purchase AS pur ON stk.sku = pur.sku
GROUP BY stk.id, stk.sku
基本上,您需要在加入之前在子查询中进行聚合。您想要的逻辑应该如下所示:
select st.sku, st.qty stock_qty, pu.purch_qty, so.sold_qty
from stock st
left join (select sku, sum(purch_qty) purch_qty from purchase group by sku) pu
on pu.sku = st.sku
left join (select sku, sum(sold_qty) sold_qty from sold group by sku) so
on so.sku = st.sku