-- Try this logic.
Create table datecompare (bl_ck int, bl_eff_dt datetime, bl_term_dt datetime)
go
insert into datecompare (bl_ck, bl_eff_dt, bl_term_dt) values (52790, convert(datetime,'2006-01-01 00:00:00.000'), convert(datetime,'2006-03-31 00:00:00.000'))
insert into datecompare (bl_ck, bl_eff_dt, bl_term_dt) values (52790, convert(datetime,'2006-04-01 00:00:00.000'), convert(datetime,'2006-06-30 00:00:00.000'))
insert into datecompare (bl_ck, bl_eff_dt, bl_term_dt) values (52790, convert(datetime,'2006-07-01 00:00:00.000'), convert(datetime,'2007-01-31 00:00:00.000'))
insert into datecompare (bl_ck, bl_eff_dt, bl_term_dt) values (52790, convert(datetime,'2007-02-01 00:00:00.000'), convert(datetime,'9999-12-31 00:00:00.000'))
go
Declare @Prev_bl_eff_dt datetime
Declare @Prev_bl_term_dt datetime
Declare @Cur_bl_ck int
Declare @Cur_bl_eff_dt datetime
Declare @Cur_bl_term_dt datetime
Declare @PrintMe Varchar(1200)
DECLARE X_Cursor CURSOR FOR
select bl_ck, bl_eff_dt, bl_term_dt from datecompare order by bl_ck, bl_eff_dt, bl_term_dt
OPEN X_Cursor
FETCH NEXT FROM X_Cursor INTO @Cur_bl_ck, @Cur_bl_eff_dt, @Cur_bl_term_dt
set @Prev_bl_eff_dt = @Cur_bl_term_dt
-- set @Prev_bl_term_dt = @Cur_bl_term_dt
WHILE @@FETCH_STATUS = 0
BEGIN
set @PrintMe = 'Current bl_ck = ' + convert(char(24),@Cur_bl_ck) + '||'
set @PrintMe = @PrintMe + 'Current bl_eff_dt = ' + convert(char(12),@Cur_bl_eff_dt,101) + '||'
set @PrintMe = @PrintMe + 'Current bl_eff_dt = ' + convert(char(12),@Cur_bl_eff_dt,101) + '||'
set @PrintMe = @PrintMe + 'Current bl_eff_dt = ' + convert(char(12),@Cur_bl_term_dt,101) + '||'
set @PrintMe = @PrintMe + 'Date Delta = ' + convert(char(12),dateDiff(day,@Prev_bl_term_dt,isn ull(@Cur_bl_eff_dt,@Prev_bl_term_dt))) + '||'
set @Prev_bl_eff_dt = @Cur_bl_eff_dt
set @Prev_bl_term_dt = @Cur_bl_term_dt
Print @Printme
FETCH NEXT FROM X_Cursor INTO @Cur_bl_ck, @Cur_bl_eff_dt, @Cur_bl_term_dt
END
CLOSE X_Cursor
DEALLOCATE X_Cursor
go
|