1

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

  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 求和。我知道一个事实,但是有一些数字需要相加。我有什么明显的遗漏吗?提前致谢!!:)

4

1 回答 1

3

尝试...

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,
于 2012-09-27T10:46:31.043 回答