2016-03-08 69 views

回答

0

SAS VA數據生成器使用SQL查詢。 因此沒有像合併這樣的數據步驟。使用Full-Join,或者如果您有一個前導表,這個表上的Left-Join,將會得到與by語句合併相同的結果。

使用所有相關的ID連接GUI中的兩個表,或者只是在代碼窗格中自己編輯代碼。

編輯: 如果您想在VA數據生成器中附加數據:這不是在查詢中完成的。您可以直接右鍵單擊內存庫中的基本表並選擇附加選項。

+0

但是,如果我進行全連接,它表示它必須至少有1列從我加入的每個表。所以a.id和b.id.但我只想要一個'聯盟全部'的id。也許這就是SAS所謂的追加系統 –

+1

你是對的,那就是所謂的追加。你不需要爲此進行查詢。只需右鍵單擊庫中的基表並選擇append。確保你使用內存表。 – Jetzler

+0

感謝您的幫助,現在它的其他進口isse即時.. .. localizedMessage =「com.sas.lasr.LASRException:錯誤:未能派生格式化的值。(errorCode = GENERIC_EXCEPTION,params = null)」..得到不知道xD是什麼意思 –

0

是的,數據準備在sql上運行,但它不必。從理論上講,你可以在數據準備中破解代碼來完成你想要的。首先,在數據準備工作中創建一個「虛擬」查詢,方法是將任何數據集拉入設計選項卡(使用同一個庫中的一個與其他庫中的一個相同,以便簡化,甚至可以使用已經選擇的兩個之一),選擇一列或兩列產生結果,轉到「輸出」選項卡,並給它最終所需的實際名稱。然後點擊「代碼」選項卡。你會看到一些預先填充的代碼。在底部,您會看到一個proc sql語句查詢數據集,然後拉入所選的列,然後輸入代碼以刪除任何現有數據集,然後使用數據步驟在lasr庫中創建表。會是這個樣子,我打電話給我的輸出testtable_01 ...

proc sql noprint; 
create table TEMP_LASR_VIEW_0 as 
SELECT 
    library.column_1 length=8 format=16. AS column_1, 
    library.column_2 length=8 format=10. AS column_2 
FROM 
    library.table; 
quit; 
/* Drop existing table */ 
%vdb_dt(LASRLIB.testtable_01); 
data LASRLIB.testtable_01 ( ); 
set TEMP_LASR_VIEW_0 (); 
run; 

現在預覽查詢結果(只是爲了確保它的工作,這是它應該因爲它是一個簡單的SELECT語句)。接下來,您將保存查詢。這將生成您需要的最後一段代碼...可註冊的宏。這將創建分配給您在開始時使用的輸出表名稱的reposid和tableid。應該是這個樣子..

/* Synchronize table registration */ 
%registerTable(
LIBRARY=%nrstr(/Shared Data/SAS Visual Analytics/Public/Visual Analytics Public LASR) 
, REPOSID=%str(A5UHNO19) 
, TABLEID=%str(A5UHN019.BF003CB7)); 

既然你有這樣的一段代碼,你可以點擊「解鎖手動編輯」按鈕(看起來像在代碼窗口的左上角有一個小掛鎖)。一旦你點擊它就沒有回頭路了。如果你搞砸了,你必須從頭開始。但是現在您可以修改代碼。將proc sql替換爲想要合併實際要使用的兩個數據集的任何代碼。例如。

DATA TEMP_LASR_VIEW_0; 
MERGE library.TABLE_01 
     library.TABLE_02; 
BY COLUMN_01; 
RUN; 
/* Drop existing table */ 
%vdb_dt(LASRLIB.testtable_01); 
data LASRLIB.testtable_01 ( ); 
set TEMP_LASR_VIEW_0 (); 
run; 
/* Synchronize table registration */ 
%registerTable(
LIBRARY=%nrstr(/Shared Data/SAS Visual Analytics/Public/Visual Analytics Public LASR) 
, REPOSID=%str(A5UHNO19) 
, TABLEID=%str(A5UHN019.BF003CB7)); 

現在保存查詢並運行它。再理論上,這應該起作用。可能需要調整一下。在獲得完美之前,可能需要嘗試幾次。