我试图将工作库中的所有表(相同结构)附加到一个数据集中。但是我需要一个新的列名来指示表名。 我尝试了两种方法:
宏数组并执行:
PROC APPEND BASE=_dupout DATA=dup_&dataset. FORCE;
RUN;
Proc SQL:
PROC SQL;
SELECT MEMNAME, catx('.', libname, MEMNAME) INTO : MEMNAMES SEPARATED BY ' '
from dictionary.tables
where libname='WORK';
quit;
DATA DUP_OUT;
SET &MEMNAMES.;
RUN;
但我找不到的方法都不会添加新列(表名)。也许这是一个非常简单的问题?我被卡住了......请帮忙......
答案 0 :(得分:0)
非常接近,请在SET语句中使用INDSNAME选项。
DATA DUP_OUT;
SET &MEMNAMES. INDSNAME=SOURCE;
DSET=SOURCE;
RUN;