2015-11-05 45 views
0

我有一个日期表,我在某个程序中使用一些计算日期。有四列,一列日期。SAS企业指南,将列添加到一个表中,其中的值来自另一个表

referenceDate | startTwoMonth | startThreeMonth | startYear 
----------------------------------------------------------------- 
31Oct2015  | 01Sep2015  | 01Aug2015  | 01Nov2015 

我想将这4列添加到另一个有很多行的表中,并且这4个日期值出现在每一行中。 (这使得它更容易在项目后期做筛选。)

目前,与我的主要数据表的查询生成器一步,我用添加表上方添加第二个日期表。查询生成器说它找不到合适的连接条件,这是正确的,没有任何。在左侧的表格列表中,我抓取数据表和日期表中的所有列,并将它们放入右侧的选择数据区域。当我运行查询时,它给了我想要的输出,但是我得到一个错误,表未加入,并且可能导致严重的性能问题。

有没有更好的方法来做到这一点?

+0

这是错误还是警告?你在找什么叫做交叉连接/笛卡尔产品,SAS确实会产生一个警告,但我认为它仍然执行并创建了一个表格。 – Reeza

+0

这只是一个警告,它的工作速度够快。我只是好奇,如果有没有更好的方法来做到这一点没有警告。 –

+0

我不认为有......可能有办法压制警告,或者如果这是一个问题,您可以使用不会生成警告的代码的程序步骤。 – Reeza

回答

0

这里有一个数据的步骤,完成同样的事情:

data want; 
set sashelp.class; 
if _n_=1 then set single_row; 
run; 
0

你可以在值在SQL步骤添加到计算列。

对于计算,你会有类似'32oct2015'd的东西,然后给它一个referenceDate的名字。

为了澄清,你基本上移动从参考表的逻辑到“主”表。

相关问题