Я создал макрос ниже, чтобы сгенерировать несколько наборов данных на основе макроса даты.
%macro pull(date);
proc sql;
create table new&date as
select * from acct
where date=&date.;
quit;
%mend;
Так что если я хочу создать набор данных для 20170101 20170201 20170301 20170401 20170501, все, что я могу сделать, это использовать ниже макрос
%macro pull(20170101)
%macro pull(20170201)
%macro pull(20170301)
%macro pull(20170401)
%macro pull(20170501)
Сейчас я планирую создать две макропеременные
%let begin=20170101;
%let end =20170501;
и создавать наборы данных на основе начала и конца, используя цикл. Можно ли это сделать? Итак, я пытаюсь сделать так, чтобы в качестве макропеременной была задана начальная и конечная дата, и извлекать записи между начальной и конечной датами из набора данных acct, а также создавать отдельные наборы данных для каждого месяца между начальной и конечной датами
Набор данных примечаний имеет месячные даты для каждого года.
Ниже код, который я пытаюсь
%let beg="01jan2000"d;
%let end="01jan2001"d;
%macro Test;
%do date=&beg. %to &end.;
proc sql;
create table IPw_&date. as
select *
from sample
where date=&date. quit;
%end;
%mend;
%Test;