@Patrick's suggestion could be implemented as:
data lst_pcs;
set lst_pcs12 lst_pcs13 lst_pcs14;
run;
proc sql;
create table want as
select
a.*,
b.*
from
master as a inner join
( select *
from lst_pcs
group by bene_id
having service_dt = max(service_dt)) as b
on a.bene_id = b.bene_id and
intck("MONTH", b.service_dt, a.deat_dt) between 0 and 12;
quit;
(untested)
... View more