Я настраиваю пакетный скрипт в SAS, я хочу, чтобы он запускался ежемесячно и выводился в таблицу, код работает при ручном запуске, но у меня возникают трудности при настройке макросов.
Я создал 3макросы, один за предыдущий месяц (пожалуйста, игнорируйте жестко запрограммированный код 12 и закомментированный код, я просто проверял, сработал он или нет, закомментированный код останется, а код 12 с жестким кодом будет удален, когда я смогу заставить его работать), один для текущего года и один для предыдущего года. Проблема, которая у меня возникнет, заключается в том, что скрипт собирает данные о конце месяца, поэтому в январе будет установлен 2020 год, но месяц будет искать данные за декабрь.
`%let pmonth = 12 /*%sysfunc(month(%sysfunc(intnx(month,"&sysdate"d ,-1))))*/;`
`%put &pmonth;`
`%let year1 = %sysfunc(year("&sysdate"d));`
`%put &year1;`
`%let year2 = %sysfunc(year(%sysfunc(intnx(year,"&sysdate"d ,-1))));`
`%put &year2;`
`%macro year;
%if &pmonth = 12 %then %do;
&year2;
%end;
%else %do;
&year1;
%end;
%mend;
%year;`
То, что я хотел бы, это длямакрос год, который используется в моем коде, для правильного выбора между годами 1 и год 2 в зависимости от месяца макросов. Я немного поэкспериментировал с макросами, но, если честно, это не та область SAS, которой я часто пользовался.