Drop table if exists #s
go
Create table #s (
SequenceNo int primary key, Name char(3), CCNum varchar(32), TransSeq smallint, Transactions char(1))
insert into #s values
(1, 'xxx', '111',1,'Y'),
(2, 'xxx', '111',2,'Y'),
(3, 'yyy', '222',1,'Y'),
(4, 'yyy', '222',2,'E'),
(5, 'yyy', '222',3,'Y'),
(6, 'zzz', '333',1,'Y'),
(7, 'zzz', '333',2,'Y'),
(8, 'bla', '444',1,'Y'),
(9, 'bla', '444',2,'E'),
(10, 'bla', '444',3,'Y')
Select * from #s
update s
set Transactions = s1.PreviousTransactions
from #s S
join (Select *, Lag(transactions,1,0) over (partition by CCNum order by CCNum, TransSeq) as PreviousTransactions
from #s) s1
on s.SequenceNo = s1.SequenceNo
and s.Transactions = 'Y'
and s1.PreviousTransactions = 'E'
Select * from #s