WHATS WRONG WITH THIS IF THEN ELSE STaTEMENT ? It keeps throwing error
Data work.XX1;
26
27 set work.XX;
28
29 where INTRA_IND = 'N' ;
30
31 if MSG_ID = 'NO MSG'
32
33 then
34
35 RELATIONSHIP_ID = GLOBL_CUST_ID ;
36
37 RELATIONSHIP_NAME = CUS_NAME;
38
39 else
____
160
2 The SAS System 10:23 Thursday, May 11, 2017
ERROR 160-185: No matching IF-THEN clause.
40
41 RELATIONSHIP_ID = MSG_ID;
Its not syntactically correct, if/then else can only have one command between then and else, and no ;. To do block of code between then and else you use do; and end;, per:
data work.xx1; set work.xx; where intra_ind='N'; if msg_id='NO MSG' then do; relationship_id=globl_cust_id; relationship_name=cus_name; end; else do; ... end; run;
You need a slightly different syntax with multiple "then" results:
if MSG_ID = 'NO MSG' then do;
RELATIONSHIP_ID = GLOBL_CUST_ID ;
RELATIONSHIP_NAME = CUS_NAME;
end;
else ...
Its not syntactically correct, if/then else can only have one command between then and else, and no ;. To do block of code between then and else you use do; and end;, per:
data work.xx1; set work.xx; where intra_ind='N'; if msg_id='NO MSG' then do; relationship_id=globl_cust_id; relationship_name=cus_name; end; else do; ... end; run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.