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;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.