在宏函数中使用宏变量过滤数据

问题描述 投票:0回答:0

我想在宏函数中使用宏变量来使用 proc sql 语句根据日期过滤数据集。

我的宏变量是这样创建的;

data _null_;
do i = 1 to 2;
 call symputx(cats('start_date_' i), cats(2022+i, "-01-01"), "G");
 call symputx(cats('end_date_' i),  cats(2022+i, "-12-31"), "G");
end;
run;

所以

start_date_1
2023-01-01
等等。

他们我在循环中使用它来创建数据集。

%macro getdata(start, end);

proc sql 
 create table sometable as 
 select * 
 from mydataset
 where keydate betweeen &start and &end;
quit;

%mend getdata; 

我已经用

&start
proc sql
和类似的技巧重新填充了
"&sstart"d
中的
%tslit(&start)
,但没有运气。

当我查看数据样本时,关键日期看起来采用

date9.
格式,如
08FEN2022
.

sas sas-macro proc-sql
© www.soinside.com 2019 - 2024. All rights reserved.