假设我有一个名为mylib
的库。
在mylib
库中,保留了以下数据集:
mylib.data_yearly_2015
mylib.data_yearly_2016
mylib.data_yearly_2017
mylib.data_yearly_2018
mylib.data_yearly_2015
mylib.data_mtly_01JUN2015
mylib.data_mtly_01DEC2015
mylib.data_mtly_01JUN2016
mylib.data_mtly_01DEC2016
mylib.data_mtly_01JUN2017
mylib.data_mtly_01DEC2017
现在我需要编写一个宏,专门从data_mtly_xxxxxx
库中选择最新的mylib
表。
例如,在当前阶段,应选择mylib.data_mtly_01DEC2017
但是,如果添加了新数据集,例如mylib.data_mtly_01JUN2018
,则必须选择该表。
我怎样才能在SAS中这样做?
答案 0 :(得分:0)
获取最长日期。
Proc sql noprint;
Select max(input(scan(name, -1, ‘_’), date9.) ) into :latest_date
From sashelp.vtable
Where upcase(libname) = ‘MYLIB’ and upcase(memname) like ‘DATA_MTLY_%’;
Quit;
现在,您应该在宏变量中拥有最新的日期值,并且可以在代码中使用它。
%put &latest_date.;
如果它看起来像是数字而不是日期,则需要应用格式,但您应该能够使用PUT()进行转换。
注意:代码未经测试。