我有一张有集装箱/房间ID的桌子。每个行都有一个容器/房间的ID和一个开始和结束日期时间。我需要计算具有多行的容器,从结束日期到下一行的开始日期之间的时间。
样本数据:

所需的输出将是第三列,以天为单位,从结束到下一行开始(当房间号有多行)之间有差异。如果只有一行,那么所需的输出将是0。
我查看了SQL Server: difference in days for two dates in separate rows,但是它只使用了一个date列,当一个房间有多个行时,我很难计算出如何计算这些行之间的差异。
发布于 2017-06-01 02:15:10
只需使用datediff()和lag()
select t.*,
datediff(day, enddt,
lead(startdt) over (partition by room order by startdt)
) as diff
from t;https://stackoverflow.com/questions/44297398
复制相似问题