Try this:declare @Sample table( GT_ID int, LastDate datetime, PredDate datetime, daysexceed int)insert @Sampleselect 3,'20090101','20090110',null union allselect 3,'20090112','20090115',null union allselect 3,'20090116','20090124',null union allselect 1,'20090101','20090107',null union allselect 1,'20090112','20090118',null union allselect 1,'20090121','20090130',nullupdate s1set s1.daysexceed=isnull(DATEDIFF(day,s2.PredDate,s1.LastDate),0)from(select GT_ID, LastDate,PredDate, daysexceed,ROW_NUMBER() over (partition by GT_ID order by GT_ID,LastDate) as rownumfrom @Sample) s1left join (select GT_ID, LastDate,PredDate, daysexceed,ROW_NUMBER() over (partition by GT_ID order by GT_ID,LastDate) as rownumfrom @Sample) s2on s1.GT_ID=s2.GT_ID and s1.rownum-1=s2.rownumselect * from @Sample order by GT_ID,LastDate--Result is:GT_ID LastDate PredDate daysexceed1 2009-01-01 00:00:00.000 2009-01-07 00:00:00.000 01 2009-01-12 00:00:00.000 2009-01-18 00:00:00.000 51 2009-01-21 00:00:00.000 2009-01-30 00:00:00.000 33 2009-01-01 00:00:00.000 2009-01-10 00:00:00.000 03 2009-01-12 00:00:00.000 2009-01-15 00:00:00.000 23 2009-01-16 00:00:00.000 2009-01-24 00:00:00.000 1
Webfred
No, you're never too old to Yak'n'Roll if you're too young to die.