Hi, This situation is when one of the condition hit (if &&nA&i <= 0), that line of data should not go throught the logic, however with the code below, it still run throught the logic. Can anyone help to debug/refine the code below, many thanks. DATA WORK.TESTING; attrib acct length=$2.; INFILE DATALINES DLM="$" DSD; INPUT acct a1 a2 a3 a4 a5 a6 a7; DATALINES; A1$6$2$3$56$76$887$12 A2$4$90$89$76$887$12$12 A3$6$90$098$76$887$12$7 A4$9$20$12$76$887$23$12 A5$1$$20$23$76$887$12 ; RUN; %macro test; data _null_; set work.testing end=lastrec; remain_bl = SUM(7,-a1); bl_value = "a"||STRIP(PUT(remain_bl,best.)); list_cnt = put(_n_,3.); call symput('nA'||STRIP(list_cnt),remain_bl); call symput('Avalue'||STRIP(list_cnt),bl_value); if lastrec then call symput ('nRows',list_cnt); run; data output; set testing; %do i = 1 %to &nRows; %put &i &&nA&i &&Avalue&i; if _n_ = &i then do; if &&nA&i > 0 then do; checking = "&&Avalue&i."; SumOf = SUM( of a1 - &&Avalue&i); end; else if &&nA&i <= 0 then do; checking = "&&Avalue&i."; SumOf = 999999; end; output; end; else do; checking = ''; SumOf = .; output; end; %end; run; %MEND test; %test;
... View more