2016-12-08 45 views
0

我有一個要求根據我已經知道的日期取回下一個日期。我正在使用下面的查詢,但這將返回整個記錄集的所有日期和所有nextdates。我可以理解,我要求的日期大於我的搜索日期,但如果我使用WHERE = '2010-01-01 04:30:00.000',那麼我將無法獲得任何結果。我怎樣才能獲取下一個日期?從日期參數中獲取下一個日期

的查詢(使用SQL Server 2012和的快遞):

SELECT [DateTime], [Item], LEAD([DateTime]) OVER (ORDER BY [DateTime]) NextDate 
FROM cteList 
WHERE [DateTime] > '2010-01-01 04:30:00.000' 
ORDER BY [DateTime]; 
+2

Top 1 .......... – scsimon

+1

您是否嘗試在您的'SELECT'中添加「TOP 1」?防爆。 'SELECT TOP 1 [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] =你就必須有確切的日期時間到表中的相應行。