If I have not misunderstood totally, you main problem was building the FullSF string. It should work perfectly well if you add %do before the ilaps part and add wrapping the &FullSF macro variable in %unqote like values(%unquote(&FullSF),&NumReps,&P1Calls,&P2Calls,&P3Calls); %macro test; data test; length FullSF $10; delete; run; %let SF = PCR; %do ilaps = 1 %to 12; %let FullSF = %str(%'&SF&ilaps%'); %put FullSF no &ilaps.: &FullSF.; proc sql; insert into test values(%unquote(&FullSF.)); ; quit; %end; proc print; run; %mend test; %test; Proc print result: 1 PCR1 2 PCR2 3 PCR3 4 PCR4 5 PCR5 6 PCR6 7 PCR7 8 PCR8 9 PCR9 10 PCR10 11 PCR11 12 PCR12
... View more