Thanks, I moved a round a few things, but primarily changed "if intnx('month',end,now) >=2 then do;" to "if intck('month',end,now) = 3 then do;" Does that seem right? seems to be giving me the output I want... Here is my full adjustment: %let startdt=NOTE: WILL NOT RUN BECAUSE THE REPORT MUST BE RUN IN THE THIRD MONTH AFTER THE PREVIOUS QUARTER ENDED,EXAMPLE-IF THE QUARTER ENDS SEPT 30, YOU MUST WAIT UNTIL AT LEAST DEC 01 TO RUN;
%let enddt=NOTE: WILL NOT RUN BECAUSE THE REPORT MUST BE RUN IN THE THIRD MONTH AFTER THE PREVIOUS QUARTER ENDED,EXAMPLE-IF THE QUARTER ENDS SEPT 30, YOU MUST WAIT UNTIL AT LEAST DEC 01 TO RUN;
data _null_;
now=today();
start = intnx('quarter',now,-1,'b');
end = intnx('quarter',now,-1,'e');
if intck('month',end,now) = 3 then do;
call symput('startdt',"'"||put(start, date9.)||"'D");
call symput('ENDdt',"'"||put(end, date9.)||"'D");
call symput('MonthCount',"(((("||put(intck('month',end,now),10.)||" Months ))))");
end;
else call symput('MonthCount',"(((("||put(intck('month',end,now),10.)||" Months ))))");
run;
%put &startdt.;
%put &ENDdt.;
%put &MonthCount.;
... View more