Well, you can do the below - assuming that your dates are all the same structure: /* Test data */ data have; attrib dte format=$10. anum format=best.; dte="Mar 1"; anum=1; output; dte="Mar 1"; anum=1; output; dte="Mar 1"; anum=1; output; dte="Mar 1"; anum=1; output; dte="Mar 1"; anum=1; output; dte="Mar 2"; anum=1; output; dte="Mar 2"; anum=1; output; dte="Mar 2"; anum=1; output; dte="Mar 2"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; dte="Mar 3"; anum=1; output; ; run; proc sql; create table WANT as select DAILY.DTE, DAILY.DAILY_SUM, (select SUM(THIS.ANUM) from HAVE THIS where substr(DAILY.DTE,1,3)=substr(THIS.DTE,1,3) and input(strip(substr(THIS.DTE,4)),best.)<=input(strip(substr(DAILY.DTE,4)),best.) ) as MTD_TOTAL from ( select distinct DTE, SUM(ANUM) as DAILY_SUM from HAVE group by DTE ) DAILY; quit;
... View more