我要求根据我已经知道的日期取回下一个日期。我使用以下查询,但这将返回整个记录集的所有日期和所有nextdates。我可以理解我要求的日期大于我的搜索日期,但是如果我使用WHERE = '2010-01-01 04:30:00.000'
那么我就没有结果。我怎样才能获取下一个日期?
查询是(使用SQL Server 2012 Express):
SELECT [DateTime], [Item], LEAD([DateTime]) OVER (ORDER BY [DateTime]) NextDate
FROM cteList
WHERE [DateTime] > '2010-01-01 04:30:00.000'
ORDER BY [DateTime];
答案 0 :(得分:1)
正如其他人所说,您可以限制现有查询TOP 1
SELECT TOP 1 [DateTime], [Item], LEAD([DateTime]) OVER (ORDER BY [DateTime]) NextDate
FROM cteList
WHERE [DateTime] > '2010-01-01 04:30:00.000'
ORDER BY [DateTime];
要使用WHERE [DateTime] =
,您必须拥有表格中相应行的确切日期时间。