Använd datediff(day,startdate,enddate)
Om det är i ordning på id stigande och typen för date är date och du vill ha antalet dagars skillnad mellan det lägsta och det näst lägsta id'enas datum så ger du det till funktionen datediff(day,startdate,enddate)
Kod:
set nocount on
if object_id ('data', 'u') is not null
drop table data
go
create table data (id tinyint not null, datum date not null)
insert into data select 5,'2012-12-23'
insert into data select 9,'2012-12-19'
insert into data select 12,'2012-12-08'
select datediff(day,
(select top 1 datum from data where id > (select top 1 id from data order by id) order by id),
(select top 1 datum from data order by id)
) as 'Antal dagar'
,(select top 1 id from data where id > (select top 1 id from data order by id) order by id) as 'Näst lägsta id'
,(select top 1 datum from data where id > (select top 1 id from data order by id) order by id) as 'Dess date'
,(select top 1 id from data order by id) as 'Lägsta id'
,(select top 1 datum from data order by id) as 'Dess date'