sql - 计算与日期范围相关的天数列
问题描述
我试图将 StartDate 与 EndDate 相关的天数作为临时表中的列。所以 12/16 是第一天,12/17 是第二天,以此类推。
当前的:
ID | 开始日期 | 结束日期 |
---|---|---|
01 | 2020/12/16 | 2020/12/18 |
02 | 2020/12/17 | 2020/12/18 |
03 | 2020/12/18 | 2020/12/18 |
需要的结果:
ID | 开始日期 | 结束日期 | 范围内的一天 |
---|---|---|---|
01 | 2020/12/16 | 2020/12/18 | 1 |
02 | 2020/12/17 | 2020/12/18 | 2 |
03 | 2020/12/18 | 2020/12/18 | 3 |
可以在 SQL Server 中进行吗?
解决方案
嗯。. . 这是你想要的吗?
select t.*,
datediff(day, min(startdate) over (partition by enddate), startdate) + 1
from t;
这将返回当前行的开始日期与与该结束日期关联的最早开始日期之间的差异。
推荐阅读
- android-studio - Android Studio Sidebars Gone and Not Pinning Correctly
- python - How to iterate through the zeroth index for every item in list in Python
- elasticsearch - How to add namespace to ELK cluster vi elasticsearch.yml in kubernetes
- html - Using custom font on webpage issue
- python - `sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected` on Ubuntu but not on Mac OS
- apache-kafka - Kafka Message Keys with Composite Values
- python - How do I use ttk.style on ttk.scale the right way?
- kubernetes - kubectl - 来自守护程序的错误响应:创建挂载源路径时出错
- python - Dataframe - 如何保持有限的行数并删除其余行
- java - Android服务解除绑定,可以添加一些额外的意图?