gpt4 book ai didi

mysql - 在 Mysql 中计算余额并结转到下一行

转载 作者:行者123 更新时间:2023-11-30 23:45:50 25 4
gpt4 key购买 nike

我有以下名为 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中按上述格式计算下个月分期付款后的逾期金额。

最佳答案

从这里开始。在较大的数据集上,使用 vars 的解决方案会更快,但您可能会使用相同的子查询。

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;

关于mysql - 在 Mysql 中计算余额并结转到下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com