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.
... View more