Im Folgenden ist der erste MakrocodeSAS proc SQL Iteration
%let bdate='01JAN2001'd ;
%let bno=11;
%let date='01JAN2001'd ;
%let sno=%eval(&bno + %sysfunc(intck(month,&bdate,&date)));
%let no=%eval(&sno.+2)
%put &=date &=sno &=no;
DATE='01JAN2001'd SNO=11 no=13
ich auf zwei Dinge tun will. Setzen Sie die Werte von sno in ein neues Dataset wie z. B. .
no
11
12
13
Zweite I unter proc SQL iterieren wollen oben aufgelöst Makro sno auf nicht basierend auf, ich meine nach oben Werte es Schleife von 11,12 und 13 ohne Verwendung von Makros sein muss.
proc sql;
create table new &no as select from sample where deal in (&no);
quit;
Also unten ist die iterierte proc SQL-Logik nach der Verwendung von oben aufgelösten Makros.
proc SQL;
create table new11 as select from sample where deal in (11);
quit;
proc SQL;
create table new12 as select from sample where deal in (12);
quit;
proc SQL;
create table new13 as select from sample where deal in (13);
quit;
Ich möchte nicht oben proc SQL in Makro und Mend-Prozess setzen. Es muss weitergehen von.
%put &=date &=sno &=no;
Sie wollen Makro-ähnliche Funktionalität ohne Makros? Hast du DOSBLUB oder CALL EXECUTE angeschaut? Wahrscheinlich CALL EXECUTE. Es ist normalerweise keine gute Idee, Ihre Daten so zu teilen ... Sie werden wahrscheinlich jetzt eher eine Straße aller Makros als BY- oder GROUP-Verarbeitung gehen. – Reeza