@Dynamike Below code has significant room for improvement but it should be able to get the job done. Assuming your dataset is called have ..else edit in the SQL statement. DATA MasterDataSet;
FORMAT Year 8. PersonCount 8.;
STOP;
RUN;
%MACRO CalcTotalForYear(YearStart, NumYearsAhead);
%DO YEAR_Num=0 %TO &NumYearsAhead;
PROC SQL;
CREATE TABLE TempDataSet AS SELECT &YearStart+&Year_Num AS Year, COUNT(*) AS
PersonCount FROM have WHERE YEAR(Start)<=&YEARStart+&Year_Num AND
YEAR(END)>=&YEARStart+&Year_Num;
QUIT;
DATA MasterDataSet;
SET MasterDataSet TempDataSet;
RUN;
%END;
%MEND;
/* Change below for starting year and number of years ahead */
%CalcTotalForYear(2005, 7); Ultimately it should give a MasterDataSet. Please let me know if it worked.
... View more