data _null_;
set temp end=eof;
call symput('var'||left(_N_),strip(memname));
if eof then
call symput('nobs',left(_N_));
run;
%put &nobs;
%do i=1 %to &nobs;
proc sql;
select min(&&var&i), max(&&var&i) into :min_&&var&i, :max_&&var&i
from &data1;
quit;
%put &&&&min_&&var&j &&&&max_&&var&j;
%end;
proc sql;
create table &dsout as
select *
from &data2
where
%do j=2 %to &nobs;
(&&var&j<&&&&min_&&var&j or &&var&j>&&&&max_&&var&j) or
%end;
(&var1<&&min_&var1 or &var1>&&max_&var1);
quit;