I have a query that identifies gaps and overlaps of date ranges in sql server 2008 r2. Each unique data set has 12 records. What I would like to do is to adjust or add to the code that identifies the gaps and overlaps and update the records to be sequential.
--gaps and overlaps tbl_volumes
with s as
(
select esiid,Read_Start,Read_End ,row_number() over(partition by esiid order by Read_Start) rn
from tbl_Volumes
where Status=0
group by esiid,Read_Start,Read_End)
select a.esiid, a.Read_Start, a.Read_End, b.Read_Start as nextstartdate,datediff(d,a.Read_End, b.Read_Start) as gap
into #go
from s a
join s b on b.esiid = a.esiid and b.rn = a.rn + 1
where datediff(d, a.Read_End, b.Read_Start) not in (0,1)
order by a.esiid
Here is the bad record set that I would like to see sequential:
e Read_Start Read_End Source
10032789402145965 2011-01-21 2011-02-22 867_03_1563303
10032789402145965 2011-02-22 2011-03-21 867_03_1665865
10032789402145965 2011-03-26 2011-04-20 867_03_1782993
Well, you could just assign a new
Read_endto each record based on the next value. The calculation for the new start can be done like this:Do you actually want to update the value or just see what it should be?