sql - SUM 字段不求和

标签 sql database tsql plsql

类似于我的上一个问题。这是我的代码:

  SELECT TR.ITEMNO,
      SUM ( TR.TRANS_QUAN * CASE TR.TRANS_TYPE WHEN 'PO' THEN 1 ELSE 0 END ) AS SUM_IN,
      SUM ( TR.TRANS_QUAN * CASE TR.TRANS_TYPE WHEN 'MH' THEN 1 ELSE 0 END ) AS SUM_OUT
  FROM IQMS.TRANSLOG TR
  WHERE TR.ITEMNO = '200672'
  GROUP BY TR.ITEMNO
  HAVING SUM ( TR.TRANS_QUAN * CASE TR.TRANS_TYPE WHEN 'PO' THEN 1 ELSE -1 END ) < 0
  ORDER BY TR.ITEMNO

代码运行良好,但没有为 SUM_OUT 求和。然而,我知道一个事实,即有一些数字需要求和。有什么明显的我想念的吗?提前致谢!! :)

最佳答案

尝试...

SUM (TR.TRANS_QUAN * CASE TR.TRANS_TYPE WHEN 'PO' THEN 1 ELSE 0 END ) 
OVER(PARTITION BY TR.ITEMNO)  AS SUM_IN,

SUM ( TR.TRANS_QUAN * CASE TR.TRANS_TYPE WHEN 'MH' THEN 1 ELSE 0 END )
OVER(PARTITION BY TR.ITEMNO)  AS SUM_OUT,

关于sql - SUM 字段不求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619188/

相关文章:

java - 使用 Spring JDBC 执行嵌套 select 语句

mysql - 在不同的行上选择满足不同条件的值?

php - 获取 "SQLSTATE[HY093]: Invalid parameter number: parameter was not defined"

java - Hibernate 缓存和数据库一致性

sql - *= 在 Sybase SQL 中

c# - 如何使用 Entity Framework Core 配置其他用户定义的数据类型?

sql - SQL SERVER 2017中对应GROUP_CONCAT()

sql - 简单的动态 SQL 查询语法

mysql - 更好地将图像存储在服务器上或将图像字符串存储在数据库中?

c# - 字符串或二进制数据将被截断 WHERE IN