грубая попытка, не проверенная, потому что нет данных или чего-то подобного.
Сначала объедините и присоединитесь к номеру приложения, а затем добавьте флаг на другом шаге.Или вы можете изменить SQL для работы в PROC SQL, что является тривиальным упражнением.
data part1;
merge tableA (in=A) tableB(in=B where=(appt_dt between '01Jan2015'd and '30Jun2015'd );
by application_no;
if a and b;
keep acct app_dt application_no;
run;
data part2;
merge part1 (in=p1) tableC (in=C);
by acc;
if p1;
if p1 and C then prom_ind=1;
else prom_ind=0;
run;
SAS SQL:
proc sql;
create table tableD nologging as
select
a.acct,
b.app_dt,
case when a.acct in (select acct from tableC) then 1 else 0 end prom_ind
from tableA a
inner join tableB b
on a.application_no = b.application_no
where b.app_dt between '01Jan2015'd and '30Jun2015'd ;
quit;