У меня есть такой макрос:
%macro loop(report_date);
/* some sql-code with where-statement on report_date:
create table with name small_table */
%mend;
Затем я хочу написать код, который создает таблицу: эта таблица представляет собой объединение таблиц, в которых выполняется условие для переменной report_day.
Но мой код не работает:
%let days_number = 31;
%let Min_Date = '01Jan2018:00:00:00'dt;
/* create table with name big_table */
/*this macro creates a union table */
%macro doInLoop(report_date);
%loop(&report_date.);
PROC SQL;
CREATE TABLE Big_table AS
SELECT *
FROM big_table
UNION ALL
SELECT *
FROM small_table;
QUIT;
%mend;
%macro createTable;
%local j;
%do j = 1 to &days_number.;
%let rep_date = dhms(datepart(&Min_Date.) + j, 0, 0, 0);
%if day(rep_date) = 1 %then %doInLoop(%rep_date);
%end;
%mend;
%createTable;
У меня 31 ошибка с сообщениями:
«ОШИБКА: в участвующих таблицах не найдено следующих столбцов: j»
Или как мне создать макрос, который использует рабочий макрос на один день («цикл»), для определенных дней из диапазона?
Спасибо.