SQL到SUM编号WHEM项目编号相同

时间:2017-11-17 10:10:05

标签: sql sql-server

尝试将SUM SQL代码用于SUM SOH以获取所有ITEM_PARENT数字。 SOH是我正在寻找的结果,而ITEM_PARENT和STOCK_ON_HAND就是我所拥有的。

CASE WHEN ITEM_PARENT = ITEM_PARENT THEN SUM(STOCK_ON_HAND) ELSE 'DN' END AS SOH_SUM,

我已经完成的代码似乎无法正常工作....

ITEM_PARENT STOCK_ON_HAND   SOH_SUM
123649336         1           11
123649336         1           11
123649336         1           11
123649336         5           11
123649336         2           11
123649336         1           11
123649328         1           15
123649328         1           15
123649328         2           15
123649328         1           15
123649328         2           15
123649328         1           15
123649328         1           15
123649328         3           15
123649328         3           15
124566152         3           19
124566152         1           19
124566152         3           19
124566152         3           19
124566152         2           19
124566152         7           19

任何人都知道我在那里失踪了吗?

2 个答案:

答案 0 :(得分:1)

看起来您尝试进行某种条件聚合,但您的预期输出不需要这样。我们可以对整个表格进行选择,然后使用SUM作为分析函数来计算SOH_SUM

SELECT
    ITEM_PARENT, STOCK_ON_HAND,
    SUM(STOCK_ON_HAND) OVER (PARTITION BY ITEM_PARENT) SOH_SUM
FROM yourTable
ORDER BY ITEM_PARENT;

答案 1 :(得分:1)

您可以使用窗口函数来获得所需的结果。

select
    [ITEM_PARENT]
    ,[STOCK_ON_HAND]
    ,sum([STOCK_ON_HAND]) over(partition by [ITEM_PARENT]) as [ItemTotal]
from tablename
;

否则,如果您想获得每件商品的总库存,请将数据分组:

select
    [ITEM_PARENT]
    ,sum([STOCK_ON_HAND]) as [TotalStockOnHand]
from tablename
group by
    [ITEM_PARENT]
;