Hello Team, I am a new SAS learner and have taken the initiative to learn SAS. Could you please give me an idea about the below SAS code? What exactly is this code doing ? what will be achieved thought this code? %macro pull_rpad(start_date, end_date, data_num); proc sql; connect to teradata ( tdpid=dwprod user=&tduser. pass=&tdpwd.); create table Exchange_&data_num. as select * from connection to teradata (select * from table ); run; proc SQL; select (strip(name)) into :vars separated by '|' from vars quit; data _null_; set Exchange_&data_num.; file "/prd/sau20/Dave/Exchange_&data_num..txt" dsd dlm='|'; if _n_ = 1 then put "&vars"; %let dsid = %sysfunc(open(vars)); %let nobs = %sysfunc(attrn(&dsid,nlobs)); %do i=1 %to &nobs; %let rc = %sysfunc(fetchobs(&dsid,&i)); %let vName = %sysfunc(getvarc(&dsid,1)); %let vType = %sysfunc(getvarn(&dsid,2)); %put &=vName &=vType; %if &vType = 2 %then %do; put (&vName) (~) @; %end; %else %if &vType = 1 %then %do; put &vName @; %end; %if &i = &nobs %then %do; put ; %end; %end; run; %let dsid = %sysfunc(close(&dsid)); %mend ; %macro run_loop(); %let begin_date = '01SEP2017'd; %let ii = 0; %do ii = 0 %to 30; data a; in1 = put(intnx('month',&begin_date,&ii,'b'),yymmdd10.); in2 = put(intnx('month',&begin_date,&ii,'e'),yymmdd10.); in3 = year(intnx('month',&begin_date,&ii,'b'))*100+month(intnx('month',&begin_date,&ii,'b')); call symput('in1',in1); call symput('in2',in2); call symput('in3',in3); run; %pull_rpad (&in1,&in2,&in3); %end; %mend; %run_loop();
... View more