当我运行以下查询时,我会得到每个会计期间的金额总和。但是在某些会计期间,我没有任何金额,因此自然而然,结果集中不会显示那些没有金额总和(空)的期间。
我想知道如何为他们返回金额为 0 的那些。
SELECT
ACCOUNTING_PERIOD,
SUM(RESOURCE_AMOUNT) AS TOTAL,
FROM
RESOURCE_TBL
GROUP BY
ACCOUNTING_PERIOD
我得到以下结果集
accounting_period TOTAL
-------------------------
1 234
3 65
5 943
6 299
. .
. .
. .
在上述期间 2 和 4 被省略,因为总和为零或空,但我想得到
accounting_period TOTAL
-------------------------
1 234
2 0
3 65
4 0
5 943
6 299
. .
. .
. .
生成所有可能的会计期间的列表,然后LEFT OUTER JOIN
与您的表一起生成:
WITH accounting_periods ( accounting_period ) AS (
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 12
)
SELECT a.ACCOUNTING_PERIOD,
COALESCE( SUM(RESOURCE_AMOUNT), 0 ) AS TOTAL
FROM accounting_periods a
LEFT OUTER JOIN
RESOURCE_TBL r
ON ( a.accounting_period = r.accounting_period )
GROUP BY a.ACCOUNTING_PERIOD
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句