Я думаю, что вы хотите:
select
t.*,
dateadd(
day,
sum(t.duration) over(order by autoid),
first_value(t.date) over(order by autoid)
) date
from mytable t
Начиная с первого значения в столбце date
(которое, как я понимаю, является единственным значением не null
в этом столбце), это постепенно добавляет количество дней в столбце duration
.