SQL Fiddle
MS SQL Server 2008的架構設置:
create table T
(
Id int,
Date datetime
)
go
insert into T values
(1 ,'04/09/2014 13:00:00'),
(1 ,'04/10/2014 15:00:00'),
(1 ,'04/12/2014 16:00:00'),
(1 ,'04/13/2014 18:00:00'),
(2 ,'04/11/2014 13:00:00'),
(2 ,'04/12/2014 15:00:00'),
(2 ,'04/12/2014 16:00:00')
查詢1:
select T1.Id,
T1.Date as Date1,
T3.Date2
from T as T1
outer apply (
select top(1) T2.Date
from T as T2
where T1.Date < T2.Date and
T1.Id = T2.Id
order by T2.Date
) as T3(Date2)
Results:
| ID | DATE1 | DATE2 |
|----|------------------------------|------------------------------|
| 1 | April, 09 2014 13:00:00+0000 | April, 10 2014 15:00:00+0000 |
| 1 | April, 10 2014 15:00:00+0000 | April, 12 2014 16:00:00+0000 |
| 1 | April, 12 2014 16:00:00+0000 | April, 13 2014 18:00:00+0000 |
| 1 | April, 13 2014 18:00:00+0000 | (null) |
| 2 | April, 11 2014 13:00:00+0000 | April, 12 2014 15:00:00+0000 |
| 2 | April, 12 2014 15:00:00+0000 | April, 12 2014 16:00:00+0000 |
| 2 | April, 12 2014 16:00:00+0000 | (null) |
selft聯接與行數(http://msdn.microsoft.com/de-de/library/ms186734.aspx)和一些模東西,子查詢可能是很長的路要走。讓我知道,如果這導致你的解決方案。我會嘗試拿出完整的SQL,如果這沒有幫助 – cproinger
與SQL Server 2008? – user3401335
sql server 2012.哪個sql應該包含row_number或子查詢? – user3580877