我有以下名为CashFlow的MySQL表,他们有每月贷款帐户详细信息,如月份ID,贷款帐号,分期付款,逾期金额
FMONTH | ACTNO | INSTALLMENT | OVERDUE
--------------------------------------
1 | 1001 | 500 | 10000
2 | 1001 | 500 |
3 | 1001 | 500 |
1 | 2001 | 1500 | 20000
2 | 2001 | 1500 |
3 | 2001 | 1500 |
我想按以下方式显示此列表
FMONTH | ACTNO | INSTALLMENT | OVERDUE
--------------------------------------
1 | 1001 | 500 | 10000
2 | 1001 | 500 | 9500
3 | 1001 | 500 | 9000
1 | 2001 | 1500 | 20000
2 | 2001 | 1500 | 18500
3 | 2001 | 1500 | 17000
我正在尝试很多技术但不幸的是我无法在MySQL中完成这个工作
请按照以上格式在MySQL中帮助我如何计算下个月扣除分期付款后的逾期金额。
答案 0 :(得分:0)
从这开始。在较大的数据集上,使用变量的解决方案会更快,但您可能会使用相同的子查询。
SELECT a.*
, SUM(b.payments) balance
FROM
( SELECT x.fmonth
, x.actno
, COALESCE(x.overdue,y.installment*-1) payments
FROM cashflow x
LEFT
JOIN cashflow y
ON y.actno = x.actno
AND y.fmonth = x.fmonth - 1
) a
JOIN
( SELECT x.fmonth
, x.actno
, COALESCE(x.overdue,y.installment*-1) payments
FROM cashflow x
LEFT
JOIN cashflow y
ON y.actno = x.actno
AND y.fmonth = x.fmonth - 1
) b
ON b.actno = a.actno
AND b.fmonth <= a.fmonth
GROUP
BY a.actno
, a.fmonth;
答案 1 :(得分:-1)
您可以使用:
aggregate function -calculate overdue-installment
group by -account number