仅当sum大于值时才返回行

Res*_*per 3 sql db2 sum

我已经构建了这个SQL Query,它搜索所有策略号并返回所有多个PPOLNO货币值的总和:

SELECT PPOLNO, SUM(PPRMPD) AS SUM 
FROM PFNTLPYMTH 
WHERE SUM(PPRMPD) >= 5000 
  AND  ((PYEAR=2012 AND PMONTH >=3 
  AND PDAY >=27) OR (PYEAR=2013 
  AND PYEAR <=3 AND PDAY<=27))
GROUP BY PPOLNO
Run Code Online (Sandbox Code Playgroud)

我正在做的只是在SUM> =特定值时才返回它们.这可能吗?怎么样?我试过这个:

SELECT PPOLNO, SUM(PPRMPD) AS SUM FROM PFNTLPYMTH
WHERE SUM(PPRMPD) >= 5000 AND ((PYEAR=2012 AND PMONTH >=3 AND PDAY >=27) OR (PYEAR=2013 
AND PYEAR <=3 AND PDAY<=27)) GROUP BY PPOLNO
Run Code Online (Sandbox Code Playgroud)

但无济于事.我刚刚尝试输入WHERE SUM> = 5000,但是再一次没有.

任何帮助将不胜感激.

  • 玩笑

Der*_*omm 18

每当您需要在聚合(即SUM)上执行"WHERE"子句时,您需要使用该HAVING子句.

SELECT PPOLNO, SUM(PPRMPD) AS SUM FROM PFNTLPYMTH
WHERE ((PYEAR=2012 AND PMONTH >=3 AND PDAY >=27) OR (PYEAR=2013 
AND PYEAR <=3 AND PDAY<=27)) GROUP BY PPOLNO
HAVING SUM(PPRMPD) >= 5000
Run Code Online (Sandbox Code Playgroud)