我已经用了三天的时间尝试解决这个问题,但没有成功。我什至在这个论坛上也做了一些搜索,但也失败了。
它可能看起来像重复问题,但老实说,这与其他问题不同。
我的问题是如何获得每个财政年度的余额结转 C/F 和期末余额的总和,每个财政年度按贷款 ID 分组,对于每个日期范围,即财政年度?
transaction_t
Na loan_id date credit_amount debit_amount
1 1 2017-01-01 5,000 4,000
2 1 2017-05-01 6,000 2,000
3 2 2017-10-01 1,000 1,500
4 1 2018-10-30 2,000 400
5 2 2018-11-01 12,00 1,000
6 2 2019-01-15 1,800 500
7 1 2019-05-21 100 200
上面的表模式及其数据在这里有 mysql fiddle
我也读过这个线程MySQL Open Balance Credit Debit Balance ,它只适用于单个用户。
到目前为止,我已经尝试过:
SELECT loan_id,
SUM(credit)-(SELECT SUM(a.debit) FROM transaction_t a
WHERE a.transaction_date
BETWEEN '2019-01-01' AND '2020-12-31' AND a.loan_id = loan_id) AS OpeningBalance,
sum(credit),sum(debit),
(@OpeningBalance+SUM(credit))-SUM(debit) AS closing_balance
FROM transaction_t tr
WHERE transaction_date BETWEEN DATE('2019-01-01') AND DATE('2020-12-31')
GROUP BY loan_id
但是上面没有给出正确的结果,我如何得到这样的结果?
A: 查询日期在 2017-01-01 和 2018-12-31 之间
loan_id opening_balance sum(credit_amount) sum(debit_amount) closing_balance
1 0 13,000.00 6,400.00 6,600.00
2 0 2,200.00 2,500.00 -300
B: 查询日期在 2019-01-01 和 2020-12-31 之间
loan_id opening_balance sum(credit_amount) sum(debit_amount) closing_balance
1 6,600 100.00 200.00 6,500.00
2 -300 1,800.00 500.00 1,000