(请注意我最近在StackOverflow上看到过类似的问题,但我无法在任何地方找到它 - 如果有人能找到它,请发布链接)
我有一个包含日期时间字段的表。例如:
表格数据
DateTime date;
int number;
我需要找到行中的日期和下一行中的日期之间的区别。我尝试过查询:
select date as current_date, date - (select top 1 date where date > current_date from data) as time_difference from date
但是由于“current_date”,这不起作用。我有办法用一个查询来做到这一点吗?
答案 0 :(得分:3)
SELECT date AS current_date, next_date - date AS difference
FROM mytable mo
CROSS APPLY
(
SELECT TOP 1 date AS next_date
FROM mytable mi
WHERE mi.date > mo.date
ORDER BY
date
) q