Hi there,
How do i scan a particular library to use the latest table based on their name. In this example, library is toshare and tables all start with extdate_.
I found this macro from another post which works when date format is yyyymmdd, but not for ddmmmyyyy.
Below should do.
libname toshare "%sysfunc(pathname(work))";
data
toshare.extdate_01apr2023
toshare.extdate_01may2023
toshare.extdate_01jun2023
;
set sashelp.class;
run;
%let last_tbl_dt=;
proc sql noprint;
select
max(input(scan(memname,-1,'_'),date9.)) format=date9.
into :last_tbl_dt trimmed
from dictionary.tables
where
libname = 'TOSHARE'
and memname like 'EXTDATE^_%' escape '^'
;
quit;
data want;
set toshare.extdate_&last_tbl_dt;
run;
Below should do.
libname toshare "%sysfunc(pathname(work))";
data
toshare.extdate_01apr2023
toshare.extdate_01may2023
toshare.extdate_01jun2023
;
set sashelp.class;
run;
%let last_tbl_dt=;
proc sql noprint;
select
max(input(scan(memname,-1,'_'),date9.)) format=date9.
into :last_tbl_dt trimmed
from dictionary.tables
where
libname = 'TOSHARE'
and memname like 'EXTDATE^_%' escape '^'
;
quit;
data want;
set toshare.extdate_&last_tbl_dt;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.