issue with output: i m trying to giving output as per condition, but its giving all observation to all created dataset. my desired result is getting by existing code but for that i need to create addition dataset "X". I dont want to create that X dataset. how can i prevent process to put observation to all. my code is: DATA CONTROL; INPUT BANKCODE $1-6 PRODCODE $9-10 COND $13-36; DATALINES; HDFC HL DELAY>10 HDFC CC DELAY<10 ICICI ML DEFAULT=100 ICICI CC DEFAULT<10 AND DELAY<10 IDBI ML WRITE_OFF =10 IDBI CC DELAY<20 ; RUN; PROC PRINT; RUN; PROC SQL NOPRINT; Select bankcode, prodcode, cond into : banklist separated by "|" ,: prodlist separated by "|" ,: condlist separated by "|" from control; %let ct = &sqlobs; QUIT; %put &banklist &prodlist &condlist &ct; DATA MASTER; INPUT BANKCODE $1-6 PRODCODE $9-10 DELAY 13-14 DEFAULT 17-18 WRITE_OFF 21-24; DATALINES; HDFC CC 5 1 12 ICICI HL 6 4 100 IDBI ML 2 3 20 ; RUN; PROC PRINT; RUN; option mlogic symbolgen macrogen; %macro test(); data hdfc icici idbi x; set master; %do i =1 %to &ct; %let bname=%scan(%bquote(&banklist),&i,%str(|)); %let pname=%scan(%bquote(&prodlist),&i,%str(|)); %let cname=%scan(%bquote(&condlist),&i,%str(|)); %if (bankcode="&bname") and (prodcode="&pname") and (&cname) %then %do; *status= "&cname."; status=%substr(%bquote(&cname),1,%sysfunc(ANYPUNCT(%bquote(&cname)))-1); output &bname. ; %end; %end; output x; run; %mend; %test;
... View more