DATA Step, Macro, Functions and more

SAS QUERY

Reply
Contributor scb
Contributor
Posts: 50

SAS QUERY

DATA TEST201704;
INPUT ID $;
DATALINES;
110
111
112
113
114
115
116
117
;
RUN;

DATA TEST201703;
INPUT ID $;
DATALINES;
110
111
112
;
RUN;

 

PROC SQL;
CREATE TABLE TESTING AS SELECT *,
CASE WHEN ID IN (SELECT ID FROM TEST201703) THEN 0 ELSE 1 END AS EXIST
FROM TEST201704;
QUIT;

 

The above proc sql codes is working fine.  As the TEST dataset is not available in every period, it could have no data on some period, e.g. 201702.  if I run the below codes, there will be an error message read "ERROR: File WORK.TEST201702.DATA does not exist."

My question is: May i know how to set the EXIST key to 1 in TESTING data if the previous period of TEST data (TEST201702) not available? Thanks. 

 

PROC SQL;
CREATE TABLE TESTING AS SELECT *,
CASE WHEN ID IN (SELECT ID FROM TEST201702) THEN 0 ELSE 1 END AS EXIST
FROM TEST201703;
QUIT;

 

Respected Advisor
Posts: 3,899

Re: SAS QUERY

You need first to check if the dataset exists and then branch to different code logic based on existence or not.

http://support.sas.com/kb/24/670.html 

 

One way to go could be that you create an empty dataset in case it doesn't exists.

 

Ask a Question
Discussion stats
  • 1 reply
  • 98 views
  • 0 likes
  • 2 in conversation