は私が行うには二つのことをしたい最初のマクロコードのSASのproc SQL以下の繰り返し
%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
です。 snoからnoへの値を、 のような新しいデータセットに入れます。
それはマクロを使用せずに、11,12および13からループにする必要があり、上記の値ごとに、私はノーに解決マクロSNOの上に基づいて、プロシージャ・SQLの下に反復したい第二には、私が意味します。
proc sql;
create table new &no as select from sample where deal in (&no);
quit;
上記の解決済みのマクロを使用した後は、以下の反復proc SQLロジックがあります。
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;
私は上記のproc SQLをマクロに追加して処理したくありません。それはから続けなければならない。
%put &=date &=sno &=no;
マクロを使用しないマクロのような機能が必要ですか? DOSUBLやCALL EXECUTEを見ましたか?おそらくCALL EXECUTE。そのようなデータを分割するのは良い考えではありません.BYやGROUPの処理ではなく、すべてのマクロをロードすることになります。 – Reeza