- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 01-25-2024 06:01 AM
(611 views)
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
When code doesn't work, please show us the ENTIRE log (not just the error messages)
--
Paige Miller
Paige Miller
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.