Добрый вечер
Есть SQL2k8
Дано:
declare @t table( id int identity, PhA sysname, PhB sysname, DTS datetime, dur int )
insert into @t(PhA, PhB, DTS, dur) values
('123','456', '20130101 10:00:10', 40 )
,('123','456', '20130101 10:00:00', 50 )
,('123','456', '20130101 10:00:20', 30 )
,('123','456', '20130102 10:00:10', 40 )
,('123','456', '20130102 10:00:00', 50 )
,('123','456', '20130102 10:00:20', 30 )
,('123','456', '20130101 11:00:00', 20 )
,('123','456', '20130101 12:00:00', 30 )
Необходимо получить выбору:
PhA, PhB, DTS, dur
'123','456', '20130101 10:00:00', 50
'123','456', '20130102 10:00:00', 50
'123','456', '20130101 11:00:00', 20
'123','456', '20130101 12:00:00', 30
Т.е. если есть пересечение по времени (DTS,dateadd(s,dur,DST)), то вывести только первую (DTS ASC) запись.
Как одним запросом добиться желаемого ?