首页 > 解决方案 > 累计汇总 SQL

问题描述

我有一张每个日期的收费表如下

在此处输入图像描述

对于以下每个付款日期,我需要根据第一个表中的费用计算预期金额和预期总金额。2019 年 2 月 10 日为 1+2+3=6(7 月后至 10 月的费用)。2019 年 9 月 10 日应该和上面一样,因为它仍然是 10 月。对于 08/01/20,4+5+6=15。有人可以帮助如何实现这一目标。谢谢你。

在此处输入图像描述

标签: sqldatecumulative-sum

解决方案


一种方法是相关子查询:

select p.*,
       (select sum(c.netamount)
        from charges c
        where c.date <= p.paymentdate
       ) as expected
from payments p;

推荐阅读