data base1;
length id $2;
input id num value;
cards;
A 3 1
B 2 4
C 1 2
D 5 3
E 4 1
;run;
data base2;
length id $2;
input id num value;
cards;
B 3 4
C 2 5
D 3 4
E 4 2
;run;
%macro aa;
%let id1=%sysfunc(open(base2,i));
%let _id=%sysfunc(varnum(&id1,id));
%do %while(%sysfunc(fetch(&id1)) eq 0);
%let id=%sysfunc(getvarc(&id1,&_id));
data aa;
set base1;
where &tt=&id;
run;
%end;
%let rc=%sysfunc(close(&id1));
%mend;
%let tt=id; %aa;
学习的时候瞎凑的表 原意是想把base1中id在base2中的取出,但是运行后出现 ERROR: 变量“E”不在文件 WORK.BASE1 中。
可以看到base1中明明是有E的啊,这是什么原因呢?要如何解决呢?
[此贴子已经被作者于2008-6-19 9:10:27编辑过]