我无法解决一个问题.
我在一个SAS库中有未知数量的表.我想创建一个循环,通过它们和"UNION ALL"这些表.
表是预先检查的,它们具有相同的结构.这些表包括历史数据,因此它应该是Union all.我尝试了以下脚本,但它会搜索所有可能性,但不会执行UNION ALL.
我很感激任何想法来解决这个问题.
%macro union_tables(table_name, last_extract); %do i=1 %to &last_extract.; select * from data.&table_name&i union all %end; select * from data.&table_name&i %mend; proc sql; create table Full_history as %union_tables(Table_,1216); quit;
先感谢您.
也许你可以省去宏并使用SET语句.
data Many; set table_: open=defer; run;
如果表与变量和类型完全相同,Open = defer可以节省大量内存.