SQL Azure计算结束时间以两天为单位从房间开始

时间:2017-06-01 02:10:25

标签: sql sql-server azure-sql-database ssms

我有一个包含Container / Room ID的表。每行都有一个容器/房间的ID以及开始和结束日期时间。我需要为具有多行的容器计算结束日期和下一行的开始日期之间的时间。

示例数据: enter image description here

当房间号码有多行时,所需的输出将是第3列,其中从下一行的END到开始之间的Diff天数。如果只有一行,则所需的输出为0。

我查看了SQL Server: difference in days for two dates in separate rows,但这只使用了一个日期列,而且当房间有多行时,我正在努力弄清楚如何计算行间的差异。

1 个答案:

答案 0 :(得分:1)

只需使用datediff()lag()

select t.*,
       datediff(day, enddt,
                lead(startdt) over (partition by room order by startdt)
               ) as diff
from t;