BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
rngsh001
Calcite | Level 5

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_. 

 

rngsh001_0-1696551358070.png

I found this macro from another post which works when date format is yyyymmdd, but not for ddmmmyyyy. 

 
%macro getlasttable;
%if not %symexist(date) %then %global date;
%let date =;
proc sql noprint;
select max(scan(memname,-1,'_')) into :date
from my_contents
where 
libname = upcase("toshare")
and memname like 'EXTDATE_%';
/* format date ddmmmyyyy.;*/
quit;
%mend;
 
Thanks for your help.
1 ACCEPTED SOLUTION

Accepted Solutions
Patrick
Opal | Level 21

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;

 

View solution in original post

2 REPLIES 2
Patrick
Opal | Level 21

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;

 

rngsh001
Calcite | Level 5
Thanks Patrick, worked like a charm. Much appreciated.

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 680 views
  • 1 like
  • 2 in conversation