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
我需要为如下所示的数据获取余额:
基表:
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