Hi, Any idea how I can make the code below more efficient with the ability to work for multiple months? At the moment this works for 3 additional months, but if I want 36 additional this will get messy quickly! The first step runs a base dataset and then merges on the next 3 subsequent months. %macro months(m0,m1,m2,m3); data month_&m0.; set X.full_pop_&m0. where obs_ref ne 'BRE'; run; proc sql; create table month_&m0. as select a.*, b.obs_sia as obs_sia_m1, b.obs_final_predef_flag as obs_final_predef_flag_m1, c.obs_sia as obs_sia_m2, c.obs_final_predef_flag as obs_final_predef_flag_m2, d.obs_sia as obs_sia_m3, d.obs_final_predef_flag as obs_final_predef_flag_m3 from month_&m0. a left join X.full_pop_&m1. b on a.ID=b.ID left join X.full_pop_&m2. c on a.ID=c.ID left join X.full_pop_&m3. d on a.ID=d.ID ; run; %mend months; %months(201903,201904,201905,201906); %months(201902,201903,201904,201905); Thanks in advance, Pete
... View more