使用现有标识符将新表统计信息附加到现有表的下一行

时间:2017-08-22 13:39:24

标签: sql sas append

我有多个表都携带有关州内不同邮政编码统计信息的信息。为了做到这一点,运行了一个循环,通过它们所有我所拥有的(zipcode1 zipcode2 zipcode2)这很好用,但现在我正在尝试为一个附加表中的每个表创建所有统计数据的主表。我怎么说

proc sql; 
create table wanted_all_zips 
as 
select stats 
from ( 

每次或每次都被覆盖的表  将邮政编码附加到每张桌子上,这样他们就无法获得 被覆盖但我不知道如何追加每个 所以下一个邮政编码是第二行/下一行* /

  ; 
    quit;

我有很多桌子,我不想为每个邮政编码写出来,代码可能会变得非常混乱。有没有办法从zipcode说:< ---所以喜欢*以zipcode union all开头

3 个答案:

答案 0 :(得分:2)

使用带有冒号修饰符的DATA STEP将它们全部追加。 INDSNAME选项将标识源数据。我还要猜测,无论你在循环中做什么,都可以用另一种不需要拆分数据集的方法来完成。标准建议是不要在SAS中拆分数据,除非它是一个空间问题。

data want;
   length source source_file $256.;
   set zipcode: indsname=source ;
   source_file = source;
run;

答案 1 :(得分:1)

我想你只想要union all。像这样:

proc sql; 
    create table wanted_all_zips as 
        select stats 
        from ((select z.* from zipcode1) union all
              (select z.* from zipcode2) union all
              (select z.* from zipcode3) 
             ) z;

答案 2 :(得分:1)

如果你有一个循环,你可以在其中

proc sql;
create table have as
select ...
;
quit;

proc append base=wanted data=have force;
run;

每次运行时,它会将have的内容附加到名为wanted

的主表中