I need to update subsequent rows in a table based on date and column values without using a cursor in SQL Server 2008 R2 -


this sql shows sample dataset working with

create table #tmp1 (     account varchar(18),     caseid varchar(18),     dt datetime,     person varchar(100),     updated varchar(18) )  insert #tmp1    select 'myacccount',  '12345', '1/1/13', 'me', 'someone' insert #tmp1    select 'myacccount',  '12346', '2/1/13', null, null insert #tmp1    select 'myacccount',  '12347', '3/1/13', null, null insert #tmp1    select 'myacccount',  '12348', '4/1/13', null, null insert #tmp1    select 'myacccount',  '12349', '5/1/13', null, null insert #tmp1    select 'myacccount',  '12350', '6/1/13', null, null insert #tmp1    select 'myacccount',  '12351', '7/1/13', 'myself', 'someone' insert #tmp1    select 'myacccount',  '12352', '8/1/13', null, null insert #tmp1    select 'myacccount',  '12353', '9/1/13', null, null insert #tmp1    select 'myacccount',  '12354', '10/1/13', null, null insert #tmp1    select 'myacccount',  '12355', '11/1/13', 'i', 'someone' insert #tmp1    select 'myacccount',  '12356', '12/1/13', null, null insert #tmp1    select 'myacccount',  '12357', '1/1/14', 'irene', 'someone' insert #tmp1    select 'myacccount',  '12358', '2/1/14', null, null insert #tmp1    select 'myacccount',  '12359', '3/1/14', null, null insert #tmp1    select 'myacccount',  '12360', '4/1/14', null, null insert #tmp1    select 'myacccount',  '12361', '5/1/14', 'olivia', 'someone' insert #tmp1    select 'myacccount',  '12362', '6/1/14', null, null insert #tmp1    select 'myacccount',  '12363', '7/1/14', null, null insert #tmp1    select 'myacccount',  '12364', '8/1/14', null, null insert #tmp1    select 'myacccount',  '12365', '9/1/14', null, null insert #tmp1    select 'myacccount',  '12366', '10/1/14', null, null insert #tmp1    select 'myacccount',  '12367', '11/1/14', null, null insert #tmp1    select 'myacccount',  '12368', '12/1/14', 'izzy', 'someone'  select * #tmp1 order account, dt 

what need update person column in each row has null value in updated column matches previous row regardless of value in person column.

however have been asked not use cursor. have been trying figure out way without cursor far have not been successful.

has been able without cursor?

you can this, assuming id's unique , sequential without gaps:

update #tmp1 set person = (select person #tmp t2 t1.caseid = t2.caseid + 1) #tmp t1 

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -