2015-11-05 50 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的名字。

爲了澄清,你基本上移動從參考表的邏輯到「主」表。

相關問題