Window 将 Column1 中的第一个值与 Column2 的值进行比较的函数

Window function for rest the first value from Column1 against values of Column2

我需要为如下所示的数据获取余额:

基表:

DebtsHeader
Zone, Id, Date  , TotalDebt
1,     1, 10-Jan,       100
2,     2, 11-Jan,       200
2,     3, 11-Jan,       300

DebtsPayment
Debt, Date  , Pay
1,    10-Jan, 10
2,    11-Jan, 20
2,    12-Jan, 30
3,    11-Jan, 30

我有一个观点,加入两者并得到这个:

Zone, Debt, Date  , TotalDebt,  Pay
1,       1, 10-Jan,       100,   10
2,       3, 10-Jan,       500,   30
2,       2, 11-Jan,       500,   20
2,       2, 12-Jan,       500,   30

现在,我需要按区域和日期获取余额,ej:

Zone, Date  , Balance
1,    10-Jan,      90
2,    10-Jan,     470
2,    11-Jan,     450
2,    12-Jan,     420

我可以用命令式代码做到这一点,但想知道 window 函数是否可以做到这一点。

您可以在这里使用 window 函数 sum

select zone, date, totaldebt-sum(pay) over(partition by zone order by date)
from your_view