sonmic
asked on
SAS result is not correct
Hi,
In the code below the instruction
IF %EVAL(%SUBSTR(&mnd,1,2)) EQ "01" THEN DO ;
doesn't work correct.
The result is :
866 %PUT &mnd ;
0111
867 %PUT &vmnd ;
0011
868 %PUT &mnd1 ;
00
it should be :
866 %PUT &lmnd ;
0111
867 %PUT &vmnd ;
1210
868 %PUT &mnd1 ;
12
In the code below the instruction
IF %EVAL(%SUBSTR(&mnd,1,2)) EQ "01" THEN DO ;
doesn't work correct.
The result is :
866 %PUT &mnd ;
0111
867 %PUT &vmnd ;
0011
868 %PUT &mnd1 ;
00
it should be :
866 %PUT &lmnd ;
0111
867 %PUT &vmnd ;
1210
868 %PUT &mnd1 ;
12
DATA _NULL_ ;
%LET periode = 201101 ;
%LET ljaar = %SUBSTR(&periode,1,4) ;
%LET mnd = %SUBSTR(&periode,5,2)%SUBSTR(&periode,3,2) ;
IF %EVAL(%SUBSTR(&mnd,1,2)) EQ "01" THEN DO ;
%LET vmnd = 12%EVAL(%SUBSTR(&periode,3,2) - 1) ;
%LET mnd1 = 12 ;
END ;
ELSE DO ;
IF %SUBSTR(&mnd,1,2) GE '10' THEN DO ;
%LET vmnd = %EVAL(%SUBSTR(&periode,5,2) - 1)%EVAL(%SUBSTR(&periode,3,2)) ;
%LET mnd1 = %EVAL(%SUBSTR(&periode,5,2) - 1) ; ;
END ;
ELSE DO ;
%LET vmnd = 0%EVAL(%SUBSTR(&periode,5,2) - 1)%EVAL(%SUBSTR(&periode,3,2)) ;
%LET mnd1 = 0%EVAL(%SUBSTR(&periode,5,2) - 1) ;
END ;
END ;
RUN ;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.