A few questions:
1. In your example, why isn't pos_perc calculated for the first row? Is there a rule for which rows to calculate?
2. Can you elaborate on how this data is updated? I presume it is a SAS dataset that is updated daily, and that you want to pos_perc calculation to be refreshed afterwards.
3. Is Positive in row 2 supposed to be 433 or 450? Your example shows both.
If you're looking for something that will automatically "refresh" the calculation, you could try a SAS view:
data have;
input Total Persons Positive & date_or_text $32.;
datalines;
1678899 4568788 294665 22feb2021
106113 5623 450 Changes since the day before
;
run;
proc sql;
create view want as
select *
,(positive / total) * 100 as pos_perc format 8.2
from have;
quit;