一对多在proc sql中合并相同的列名

时间:2016-05-04 20:45:26

标签: sql sas

我希望通过ptid和tx_code命令加入这两个表。 什么是连接的理想方式,以便dat2中的每个观察都返回来自dat1的重复信息?

data baseline;
input ptid  age gender $ stat stat_date creat tx_code datnum$;
cards;
123 40 M A 02/15/2004 1.2 3 1
456 29 F A 06/05/2009 1.5 2 1
789 53 M D 01/10/2007 2.0 1 1
;
run;

data followup;
 input ptid tx_code stat stat_date wgt hgt  organ datnum $;
cards;
123 3 A 02/15/2004 60 150 ki 2
123 3 A 10/05/2004 75 150 ki 2
456 2 A 06/05/2009 95 173 SKP 2
456 2 A 12/30/2009 95 173 SKP 2
456 2 A 05/05/2010 93 173 SKP 2
456 2 A 10/20/2010 85 173 SKP 2
456 2 D 11/10/2010 . 173 SKP 2
789 1 A 01/10/2007 65 180 pta 2
789 1 A 06/25/2007 60 180 pta 2 
789 1 L 06/25/2008 . . pta 2
;
run;

1 个答案:

答案 0 :(得分:1)

使用proc sql加入。如果您只想要不同的观察,请使用"选择不同的"而不是"选择"

proc sql;
    create table resultant_table as select
        a.*, b.wgt, b.hgt, b.organ, b.stat as stat2, b.stat_date as stat_date2
        from baseline as a
        left join followup as b
        on a.ptid = b.ptid and a.tx_code = input(b.tx_code, 8.);
quit;