Sql 一段时间内的最大和平均债务天数
我有待付款的发票,每张发票都有两个日期,第一个是发票付款日期,另一个是发票付款日期。我想知道一段时间内的最大债务和平均债务 这是桌子Sql 一段时间内的最大和平均债务天数,sql,sql-server,datetime,sum,unpivot,Sql,Sql Server,Datetime,Sum,Unpivot,我有待付款的发票,每张发票都有两个日期,第一个是发票付款日期,另一个是发票付款日期。我想知道一段时间内的最大债务和平均债务 这是桌子 Id Invoice Amount InvoiceDate InvoicePayment ----------- ------- ----------- ----------- ------------- 1 Bill 1 314 2019-01-20 2019-03-01 2
Id Invoice Amount InvoiceDate InvoicePayment
----------- ------- ----------- ----------- -------------
1 Bill 1 314 2019-01-20 2019-03-01
2 Bill 2 205 2019-01-14 2019-02-18
3 Bill 3 90 2019-02-04 2019-02-06
4 Bill 4 456 2019-01-03 2019-04-27
我想知道2月份的最大债务金额和平均债务您可以使用交叉申请取消PIVOT,并使用窗口总和计算每个给定时间点的运行债务。剩下的只是过滤和聚合:
select avg(debt) avg_debt, max(debt) max_debt
from (
select x.dt, sum(x.amount) over(order by x.dt) debt
from mytable t
cross apply (values (invoicedate, amount), (invoicepayment, -amount)) as x(dt, amount)
) t
where dt >= '20200201' and dt < '20200301'
无需在标题中大喊,请尝试说明您是否尝试编写任何代码并发现任何特定问题;那么,难道不是一个代码编写服务吗?似乎是个家庭作业问题。你如何定义债务?您的示例数据只有发票。