为变量的每个值添加一系列值到另一个变量

时间:2017-11-29 14:42:04

标签: sql sas

我正在尝试使用月份和产品ID构建数据集。每个唯一的产品ID都存储在表1中,所有相关月份都存储在表2中。

Table1 
1234
1254


Table2 
Jan2010
Feb2010
Mar2010
Apr2010

最终数据看起来像这样:

ID   Date 
1234 Jan2010
1234 Feb2010
1234 Mar2010
1234 Apr2010
1254 Jan2010
1254 Feb2010
1254 Mar2010
1254 Apr2010

我如何合并这两个表来获得结果?

2 个答案:

答案 0 :(得分:1)

SELECT Table1.Id, Table2.Date
FROM Table1
CROSS JOIN Table2
ORDER BY Table1.Id ASC, Table2.Date ASC

答案 1 :(得分:0)

之前的proc sql解决方案有效。但是,如果您正在使用庞大的数据集,那么该环境并不总是可行的。我使用了更多'sas'-y解决方案:

data Table1 ; 
input num; cards;
1234
1254 
; run;

data Table2;
input dates $ ; cards;
Jan2010
Feb2010
Mar2010
Apr2010
; run;

data all_comb;
    set table1; 
        do i=1 to n;
            set table2 point=i nobs=n; 
            output; 
        end; 
run;

但严重的是,如果是一个选项,请使用Proc sql。