This my macro cust. I need to pass multiple values for the macro variable state. If I am calling a macro like this %cust(dsn = Profile1, vars = Acct_ID Name Age Balance State, age_range= "18-40", state = "NY"); It is working fine. But if I pass multiple values in state. It is throwing an error. How to resolve this. Example below. %cust(dsn = Profile1, vars = Acct_ID Name Age Balance State, age_range= "18-40", state = "NY", "CA"); %macro cust(dsn = , vars = , age_range= , state=); %if &state = "NY" %then %do; proc print data = &dsn; var &vars; where State = &state and Age_Range = &age_range; title "Detail Listing of Account in &state and current date &sysdate"; run; title "Total Balance in &state and in age &age_range current date &sysdate"; proc sql; select %sysfunc(tranwrd(%sysfunc(compbl(&vars)),%str( ),%str(,))), sum(Balance) as Total_Balance from &dsn where State = &state and Age_Range = &age_range; quit; %end; %else %if &state = "CA" %then %do; proc print data = &dsn; var &vars; where State = &state and Age_Range = &age_range; title "Detail Listing of Account in &state and current date &sysdate"; run; title "Total Balance in &state and in age &age_range current date &sysdate"; proc sql; select %sysfunc(tranwrd(%sysfunc(compbl(&vars)),%str( ),%str(,))), sum(Balance) as Total_Balance from &dsn where State = &state and Age_Range = &age_range; quit; %end; %else %if &state = "WA" %then %do; proc print data = &dsn; var &vars; where State = &state and Age_Range = &age_range; title "Detail Listing of Account in &state and current date &sysdate"; run; title "Total_Balance in &state and in age &age_range current date &sysdate"; proc sql; select %sysfunc(tranwrd(%sysfunc(compbl(&vars)),%str( ),%str(,))), sum(Balance) as Total_Balance from &dsn where State = &state and Age_Range = &age_range; quit; %end; %mend cust; Thanks.
... View more