You can generate the code from the list of variables. data have; input emp_code $ li_Jan Li_feb MF_Jan MF_feb GI_jan GI_feb ; cards; a 2 5 5 10 9 8 b 3 6 6 6 6 2 c 1 3 2 3 7 2 d 4 4 1 1 2 1 run; proc sql noprint ; create table varlist as select upcase(scan(name,-1,'_')) as month , name from dictionary.columns where libname='WORK' and memname='HAVE' and calculated month in ('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC') order by 1,2 ; run; filename code temp; data _null_ ; set varlist ; by month ; file code ; if first.month then put month +(-1) '_Sales=sum(0' @; put ',' name @ ; if last.month then put ');' ; run; data want ; set have ; %inc code / source2 ; run; 288 data want ; 289 set have ; 290 %inc code / source2 ; NOTE: %INCLUDE (level 1) file CODE is file .../#LN00022. 291 +FEB_Sales=sum(0,GI_feb ,Li_feb ,MF_feb ); 292 +JAN_Sales=sum(0,GI_jan ,MF_Jan ,li_Jan ); NOTE: %INCLUDE (level 1) ending. 293 run; NOTE: There were 4 observations read from the data set WORK.HAVE. NOTE: The data set WORK.WANT has 4 observations and 9 variables.
... View more