У меня есть набор данных, где Period находится в формате YYYYMM
, и я создал макрос для вызова этого макроса как:
data _null_;
date=today();
call symputx('month',put(intnx('month',date,-1,'e'),yymmn6.));
call symputx('period1',put(intnx('month',date,-1,'e'),date9.));
data _null_;
call symputx('period1_fmt',put(input("&period1",date9.),yymmdd10.));
data _null_;
call symput("yyyymm", put(input("&period1", anydtdte9.), yymmn6.));
call symput("period1",put(intnx('month',input("&period1",anydtdte9.),-1,'e'),yymmn6.));
run;
Теперь я хотел вызвать 201807, который хранится как & Period1 в другом макросе, например
%macro Checkdate(Date=);
Proc sql;
create table temp1_0 as
select T1.MERC_ID,
'CHURNED' as CATEGORY
from RPT_Response_FC as t1
WHERE Period= &Date.
GROUP BY T1.MERC_ID
;
quit;
%mend;
%Checkdate(Date=&Period1);
Но ошибка отображается как
ОШИБКА: выражение, использующее равно (=), содержит компоненты разных типов данных.
Было бы здорово, если бы кто-нибудь мог помочь мне в этом. Как я мог решить эту ошибку.
Я преобразовал &Period1
в числовое значение, используя Sysfunc
, но все равно он показывает ту же ошибку.