proc sql;
select name into :i from dictionary.columns where libname=%upcase("&lib1") and memname=%upcase("&dsa") and varnum=&varnum1;
select name into :j from dictionary.columns where libname=%upcase("&lib2") and memname=%upcase("&dsb") and varnum=&varnum2;
QUIT;
data y;
merge &dsa(keep=&i) &dsb(keep=&j);
sum=&i+&j;
run; %mend;