Try this. data have; set test; /* Available dataset */ mon=month(date); /*Get month from date */ run; proc sql; create table want as select a.*,b.Day_1_CurBal_,b.Day_2_CurBal_, b.Day_3_CurBal_, b.Day_4_CurBal_, b.Day_5_CurBal_ from have a inner join ( select acct, mon,sum(Day_1_CurBal) as Day_1_CurBal_ , sum(Day_2_CurBal) as Day_2_CurBal_, sum(Day_3_CurBal) as Day_3_CurBal_, sum(Day_4_CurBal) as Day_4_CurBal_ , sum(Day_5_CurBal) as Day_5_CurBal_ from have group by acct,mon) b on a.acct=b.acct and a.mon=b.mon order by a.acct, a.date; quit; data final(keep=acct date Day_1_CurBal Day_2_CurBal Day_3_CurBal Day_4_CurBal Day_5_CurBal); set want; array bal{5} Day_1_CurBal Day_2_CurBal Day_3_CurBal Day_4_CurBal Day_5_CurBal; array bal_{5} Day_1_CurBal_ Day_2_CurBal_ Day_3_CurBal_ Day_4_CurBal_ Day_5_CurBal_; do i=1 to dim(bal); if bal{i}=. then bal{i}=bal_{i}; end; run; proc print data=final; run;
... View more