Noz*_*oza 1 union loops sas proc-sql
我无法解决一个问题.
我在一个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;
Run Code Online (Sandbox Code Playgroud)
先感谢您.
也许你可以省去宏并使用SET语句.
data Many;
set table_: open=defer;
run;
Run Code Online (Sandbox Code Playgroud)
如果表与变量和类型完全相同,Open = defer可以节省大量内存.