案例表达之和

问题描述

我正在sql Server 2017 Windows 10中编写代码。我不知道问题出在哪里,也无法获得case表达式总和的结果。

这是我的代码

select PD.PONO,PM.CURRSTATUS,PD.Qty,case when pm.currstatus = 1 then sum(pd.qty) end TotalStock
from ppom PM
LEFT OUTER join ppod PD on pd.pono = pm.pono
where pm.pono = 15973
group by PD.PONO,PD.Qty
GO

结果显示在下面

PONO    CURRSTATUS  Qty TotalStock
15973   1   8   8
15973   1   14  14
15973   1   25  25

结果应显示总和值

PONO    CURRSTATUS  Qty TotalStock
15973          1    8   47
15973          1    14  47
15973          1    25  47

在此感谢您的帮助

解决方法

您似乎想要一个窗口总和而不是聚合。看起来像:

select 
    pd.pono,pm.currstatus,pd.qty,sum(case when pm.currstatus = 1 then pd.qty else 0 end) 
        over(partition by pd.pono) total_stock
from ppom pm
left join ppod pd on pd.pono = pm.pono

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...