75 列の 75 値のパーセンテージを個別に取得する必要があります。そして、do ループを使用したいので、75 回もハードコーディングする必要はありません。いくつかの条件があるので、where ステートメントがあります。
do ループを正しく取得していませんが、以下を使用してパーセンテージを取得しています
case when (SUM(t1.sam)) >0 then
((SUM(t1.sam))/(SUM(t1.sam_Threshold)))*100
else 0
end
私は以下を試しましたが、少し良くなりました:
data test;
i_1=4;
i_2=8;
i_3=4;
i_4=8;
V_ANN_V_INSP=24;
run;
%macro loop();
%let numcols=4;
proc sql;
create table test3 as
select V_ANN_V_INSP,
%do i=1 %to &numcols;
(i_&i/V_ANN_V_INSP)*100 as i_&i._perc
%if &i<&numcols %then %do;,
%end;
%end;
from test;
quit;
%mend;
%loop();