是根据数据集A中的状态b,c,d去筛选数据集B中的数据吗?
可以用PROC SQL实现:
data a;
input name $2. statusA $2. statusB $2. statusC $2. statusD $2.;
cards;
a y n n y
b n n y n
c n n n n
;
run;
data b;
input name $2. statusA $2. statusB $2. statusC $2. statusD $2. value;
cards;
a n n n n 20
a n n n y 15
a n n y y 30
a n y n n 39
b n n n n 20
b n n n y 15
b n n y y 30
b n y n n 39
;
run;
proc sql;
select *
from b
where exists (
select 1 from a
where a.statusB=b.statusB
and a.statusC=b.statusC
and a.statusD=b.statusD
);
run;
|