计算账户期间累计余额:直接使用窗口函数导致结果错误的问题排查与优化咨询
计算账户期间累计余额:直接使用窗口函数导致结果错误的问题排查与优化咨询
我尝试用下面的SQL语句计算每个账户各期间的借方、贷方发生额,以及累计余额:
SELECT pph.accnt_code, pph.period, SUM(pph.value_debit) AS debits, SUM(pph.value_credit) AS credits, SUM(pph.value_debit-pph.value_credit) OVER (ORDER BY pph.accnt_code, pph.period) AS endbal FROM trans_tst pph GROUP BY pph.accnt_code, pph.period ORDER BY pph.accnt_code, pph.period
我预期得到的结果是按账户+期间排序,每个账户的累计余额逐期正确累加的表格,但实际得到的却是累计余额计算错误,没有按账户正确分组累加的表格。
后来我换了一种方式:先创建一个中间表,按账户和期间汇总借方、贷方发生额,再基于这个中间表计算累计余额,结果就正确了。
备注:内容来源于stack exchange,提问作者Jorge
相关产品推荐
相关产品推荐

