This is what I have so far...My real world values are a bit more complicated but does anyone see anything wrong with this approach.create table #T1 (datemoved datetime, status varchar(1), keys int)create table #T2 (dateaccomplished datetime, keys int)insert into #T1 (datemoved, status, keys) values ('1/1/2000','A',1)insert into #T1 (datemoved, status, keys) values ('2/1/2000','B',1)insert into #T1 (datemoved, status, keys) values ('3/1/2000','C',1)insert into #T1 (datemoved, status, keys) values ('2/1/2000','F',2)insert into #T1 (datemoved, status, keys) values ('3/1/2000','C',2)insert into #T2 (dateaccomplished, keys) values ('1/2/2000',1)insert into #T2 (dateaccomplished, keys) values ('3/4/2000',1)insert into #T2 (dateaccomplished, keys) values ('2/5/2000',2)insert into #T2 (dateaccomplished, keys) values ('3/10/2000',1)create table #T3 (dateaccomplished datetime, status varchar(1), keys int)--select * from #T1--select * from #T2declare @date1 datetimedeclare @date2 datetimedeclare @status varchar(1)WHILE (select count(*) from #T1) > 0BEGIN set @date1 = (select top 1 datemoved from #T1 order by datemoved asc) select @status = status from #T1 where datemoved = @date1 set @date2 = (select top 1 datemoved from #T1 where datemoved <> @date1 order by datemoved asc) if @date2 is NULL set @date2 = GETDATE() insert into #T3 (dateaccomplished, status, keys) select dateaccomplished, @status, keys from #T2 where dateaccomplished >= @date1 and dateaccomplished < @date2 delete from #T1 where datemoved = @date1ENDselect * from #T3--drop table #T1--drop table #T2--drop table #T3