Hello. This is the first time I'm posting a question and am a rank beginner with SAS 9.4, so I hope this doesn't sound stupid. I'm trying to use a macro where the variable assignments are sets of numbers in a do loop. So, for example, I'd have %let set_1 = (123, 234, 345); %let set_2 = (456, 567, 678); %let set_3 = (789, 890, 012); Then a proc sql statement like: %macro loop(Start,End); %DO k=&Start. %TO &End.; Proc SQL; Create table work.rst_&k. as Select a.field sum(a.abc) as W, sum(a.bcd) as Z, From work.data1 a, work.data2 b, Where a.field1 = b.field1 and a.field2 = b.field2 a.field3 in set_&k. Group by a.year Order by a.year ; %End; quit; %mend; %loop (Start=1, End=3) The set_x are much larger than displayed here, and there are far more sets. The way I did it originally was to do a separate SQL step for each set_x, and that worked, but I was hoping I could streamline the code a bit. The error I'm getting with the Do Loop is: WARNING: Apparent symbolic reference Set_ not resolved. NOTE: Line generated by the invoked macro "LOOP". 3 &set_&k. - 22 76 ERROR 22-322: Syntax error, expecting one of the following: (, SELECT. ERROR 76-322: Syntax error, statement will be ignored. Thank you for any help you are willing to provide and please advise if I put this request in the wrong place.
... View more