My issue is I have YTD claims paid and need claims paid by quarter. The data is loaded every quarter so I've transposed the data so that every load date (which is every quarter) is a new variable. Now I'm trying to loop through a create a new column for each quarter. I'm having an issue of the column being created using the macros. If I manually create a column using the below statement it works: Y2012Q3 = '30Sep2013'n - '30Jun2013'n; When I create my macro to do all 24 quarters, it doesn't work even though it appears it is resolving to the above statement. Here is the code: %MACRO QTR();
DATA out2;
SET work.outx1;
%LET startdate = %SYSFUNC(MDY(6,30,2012));
%DO i=0 %to 23;
%LET date1= %SYSFUNC(INTNX(MONTH,&StartDate,%EVAL(&i.*3)));
%LET date2= %SYSFUNC(INTNX(MONTH,&StartDate,%EVAL((&i.+1)*3)));
%LET datef1= %SYSFUNC(PUTN(%SYSFUNC(INTNX(MONTH,&StartDate,%EVAL(&i.*3))),date9.));
%LET datef2= %SYSFUNC(PUTN(%SYSFUNC(INTNX(MONTH,&StartDate,%EVAL((&i.+1)*3))),date9.));
%LET column = Y%SYSFUNC(PUTN(&date2.,YYQ.));
%PUT &=column;
&column. = %STR(%')&datef2.%STR(%'n) - %STR(%')&datef1.%STR(%'n);
%END
RUN;
%MEND;
OPTIONS MPRINT;
%QTR();
OPTIONS NOMPRINT;
... View more