我有一个PaymentSchedule表,如下所示,其中包含有关合同的信息,以及我们期望何时获得付款。
contractkey | payment | totalDueDate | 385884 | 前期 | 95.356 | 2022-05-17 00:00:00.000 |
---|---|---|---|
385884 | 第一个 | 1 | 2022-06-09 00:00:00.000 |
385884 | 最后 | 143.034 | 2024-07-17 00:00:00.000 |
用例表达式根据累积金额检查totalpaid
并相应地计算剩余金额
第一个条件是totalpaid大于累计金额,所以remaining = 0
第二个条件是totalpaid只能部分支付累计金额
最终条件(else)是totalpaid完全不够支付金额,所以Remaining = 0
TotalRemaining = case when isnull(dd.totalpaid, 0)
>= sum(s.Total) over (partition by s.contractkey
order by s.DueDate)
then 0
when isnull(dd.totalpaid, 0)
>= sum(s.Total) over (partition by s.contractkey
order by s.DueDate)
- s.Total
then sum(s.Total) over (partition by s.contractkey
order by s.DueDate)
- isnull(dd.totalpaid, 0)
else s.Total
end