BookmarkSubscribeRSS Feed
HeatherNewton
Quartz | Level 8

 

data testdata;
input cost_mth $9. monyyyy $10.;
datalines;
20NOV2023 NOV2023
1NOV2023 DEC2023
30NOV2023 DEC2023
;
RUN;

proc print data=testdata;run;

* cost_mth=21JAN2009 MONYYYY=DEC2006

proc sql;
create table default_cnt as 
select
intnx('month',cost_mth,0,'e') as default_mth format=date9. 
from testdata;
quit;

proc print data=default_cnt;
run;

DATA result;
set testdata;
test1=PUT(monyyyy,MONYY7.);
test2=PUT(A.default_mth+1, MONYY7.);
run;


proc print data=result;
run;

why doesnt my code works, it says out of proper order for the intnx statement

please helo

2 REPLIES 2
PaigeMiller
Diamond | Level 26

When code doesn't work, please show us the ENTIRE log (not just the error messages)

--
Paige Miller
BrunoMueller
SAS Super FREQ

There are a few changes needed for your program.

 

I would code the first DATA step to actually read the values as dates and not as character value, like so:

data testdata;
input cost_mth : date9. monyyyy : monyy7.;
format cost_mth monyyyy date9.;
datalines;
20NOV2023 NOV2023
1NOV2023 DEC2023
30NOV2023 DEC2023
;

Second you are missing the ";" in you comment statement

 

In your last DATA step you read the data from the first DATA step, this data set is missing the default_mth variable (in the DATA step you just use the name of a variable, so A.default_mth will not work). Your SQL creates a table with one variable. 

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

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
  • 667 views
  • 0 likes
  • 3 in conversation