--1、获取平均值
declare @avg int;
select @avg = (100/count(S_PRO_ID)) from S_ProgressDESC
where S_PRO_ID=5;
print @avg;
--2、排序并更新
update S_ProgressDESC
set S_PRO_NUM = @avg * aa.per from (
select row_number() over (order by a.S_showorder) as per, a.S_ID as s_id
from S_ProgressDESC a where a.S_PRO_ID=5
) as aa
where S_PRO_ID=5 and S_ProgressDESC.S_ID=aa.S_ID
4、将最后一步的百分比设置为100%:
update S_percent='100%' from S_ProgressDESC
where S_showorder=(
select max(S_showorder) from S_ProgressDESC where S_PRO_ID=5)
where S_PRO_ID=5;