Here is my simple coding.
DATA _NULL_;
/*
START=TRIM(LEFT(SUBSTR(SYSPARM(),1,8)));
END=TRIM(LEFT(SUBSTR(SYSPARM(),10,8)));
*/
START='MMDDYYYY';
END='MMDDYYYY';
IF START='MMDDYYYY' AND END='MMDDYYYY' THEN
DO;
PUT 'TEST1';
CURYEAR = YEAR(TODAY());
PREYEAR = CURYEAR -1 ;
CALL SYMPUT('CURYEAR',PUT(CURYEAR,4.));
CALL SYMPUT('PREYEAR',PUT(PREYEAR,4.));
END;
ELSE
DO;
PUT 'TEST2';
CALL SYMPUT('CURYEAR', SUBSTR(START,5));
CALL SYMPUT('PREYEAR', SUBSTR(END,5));
END;
%PUT &CURYEAR;
%PUT &PREYEAR;
Here is the part of the LOG, which says the &CURYEAR and &PREYEAR is not resloved. It is very strange , it didn't poped any error message. I need somebody's help.. I am using SAS 8.2 on the mainfram.
57 %PUT &CURYEAR;
WARNING: APPARENT SYMBOLIC REFERENCE CURYEAR NOT RESOLVED.
&CURYEAR
58 %PUT &PREYEAR;
WARNING: APPARENT SYMBOLIC REFERENCE PREYEAR NOT RESOLVED.
&PREYEAR
59
60
61
62
63
64
65 ENDSAS;
TEST1
NOTE: THE DATA STATEMENT USED 0.01 CPU SECONDS AND 8635K.
NOTE: THE SAS SESSION USED 0.06 CPU SECONDS AND 8635K.
NOTE: SAS INSTITUTE INC., SAS CAMPUS DRIVE, CARY, NC USA 27513-2414
Thasnk very much for your help in advancel
TONY.
After adding 'RUN' statement, it runs fine for me on SAS 9.4
After adding 'RUN' statement, it runs fine for me on SAS 9.4
Hi Hai.Kuo
Thanks very much . It worked after I add run statment. Thanks very much. Saved my time.
Thanks
Tony
data _null_;
START_d='MMDDYYYY';
END_d='MMDDYYYY';
IF START_d='MMDDYYYY' AND END_d='MMDDYYYY' THEN
DO;
PUT 'TEST1';
CURYEAR = YEAR(TODAY());
PREYEAR = CURYEAR -1 ;
CALL SYMPUT('CURYEAR',PUT(CURYEAR,4.));
CALL SYMPUT('PREYEAR',PUT(PREYEAR,4.));
END;
ELSE DO;
PUT 'TEST2';
CALL SYMPUT('CURYEAR', SUBSTR(START_d,5));
CALL SYMPUT('PREYEAR', SUBSTR(END_d,5));
END;
run;
%PUT &CURYEAR;
%PUT &PREYEAR;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.