Вы можете попробовать синтаксис UPDATE ... FROM ...
, который позволяет использовать JOIN
.Вот фрагмент кода вместе с тестовыми данными:
declare @tbl table (seq int, Acc varchar(10), RecId int, trnDate date);
insert into @tbl values
(null, '12344', 2, '2019-05-05'),
(null, '12344', 1, '2019-05-06'),
(null, '12344', 5, '2019-05-04'),
(null, '12344', 5, '2019-05-03'),
(null, '12355', 1, '2019-05-05');
select * from @tbl
update t1 set t1.seq = t2.rn
from @tbl t1 join (
select row_number() over (order by RecId, trnDate) rn,
trnDate,
RecId,
Acc
from @tbl
where Acc = '12344'
) t2 on t1.trnDate = t2.trnDate and t1.RecId = t2.RecId and t1.Acc = t2.Acc
select * from @tbl