You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成累计余额?基于SQL实现应收余额计算

如何通过SQL计算累计应收余额并生成结果表

现有数据表包含Date、total_fee、paid_amount三个字段,数据如下。需要通过SQL新增due_amount字段,该字段为累计计算的应收余额,预期结果如下。

原始数据表

Datetotal_feepaid_amount
2024-06-03 22:03:464000300
2024-06-03 09:14:0840001600
2024-06-03 09:13:124000800
2024-06-03 09:08:334000800

预期结果表

Datetotal_feepaid_amountdue_amount
2024-06-03 22:03:4640003003700
2024-06-03 09:14:08400016002100
2024-06-03 09:13:1240008001300
2024-06-03 09:08:334000800500

SQL实现

使用窗口函数SUM()结合ORDER BY按时间降序累计支付金额,再用订单总金额减去累计支付金额得到应收余额:

SELECT 
    Date,
    total_fee,
    paid_amount,
    total_fee - SUM(paid_amount) OVER (ORDER BY Date DESC) AS due_amount
FROM 
    your_table_name;

逻辑说明

  1. SUM(paid_amount) OVER (ORDER BY Date DESC):按时间从晚到早累计支付金额,每条记录的累计值包含当前记录及之后所有记录的支付金额之和;
  2. total_fee - 累计支付金额:得到该时间点支付后的剩余应收余额,与预期结果完全匹配。

内容的提问来源于stack exchange,提问作者Zakir Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:13:14