BookmarkSubscribeRSS Feed
EEng
Obsidian | Level 7

Hello,

 

I'm trying to get the max date in the prior month from an Oracle table using SAS.

 

%let tday = %sysfunc(today());


proc means data=Oracle_Table noprint; where fin_metric_id in(6,8) and (intnx('month',&tday,-1,'begin')<=input(put(dt_id,z8.),yymmdd8.)<=intnx('month',&tday,-1,'end')); var dt_id; output out=maxdatei max=alt_inv_dt; run;

 

I am getting the correct data from this code but I get this warning message that I want to eliminate.

 

WARNING: The WHERE clause contains SAS-specific syntax that cannot be passed to the DBMS.

WARNING: SQL generation was not performed because the WHERE clause could not be created.

 

Not sure if it likes the Begin and End in my INTNX function.

 

Thanks

1 REPLY 1
LinusH
Tourmaline | Level 20
No, it doesn't like the INTNX function as such.
See here for supported functions:
http://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=9.4_3.3&docsetId=acreldb&docsetTarget=p0f64...
But can't see anything that would stop you to use it prior to the PROC using %sysfunc.
Data never sleeps

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1 reply
  • 1186 views
  • 0 likes
  • 2 in conversation