2016-07-29 3 views
1

マスター表のOBSない:ベース(新しい観測が含まれる可能性があります更新されたテーブル)(マスターテーブル)updateX更新マスタテーブル間は、私は2つのデータセットを持っているSAS

data base; 
    input Field1 $ Field2 $ Field3 $ Field4 $; 
    datalines; 
F 0001 20160501 ABC 
NF 0001 20160502 CDF 
NF 0002 20160601 ABC 
NF 0002 20160602 CDF 
    ; 
run; 

data updateX; 
    input Field1 $ Field2 $ Field3 $ Field4 $; 
    datalines; 
F 0001 20160502 CDF 
F 0002 20160602 CDF 
F 0003 20160603 CDF 
    ; 
run; 

マイ所望の出力

F 0001 20160501 ABC 
F 0001 20160502 CDF 
NF 0001 20160502 CDF 
F 0002 20160602 CDF 
F 0003 20160603 CDF 

私の努力:あなたは場合に応じて、REPLACEまたは出力にSASを指示する必要がありMODIFYで

data base; 
    modify base updateX; 
    by Field2 Field3; 
run; 

答えて

4

レコードが一致するかどうか。

data base; 
    modify base updatex; 
    by field2 field3; 
    if _iorc_ eq 0 then replace; 
    else do; 
     output; 
     _error_=0; 
     end; 
    run; 

UPDATEを使用して新しいデータセットを作成することは簡単です。更新すると、一致するレコードが更新され、出力(置換)され、トランザクションファイルからの新しいレコードが出力されます。

data ubase; 
    update base updatex; 
    by field2 field3; 
    run; 
+0

実際に一致する古いレコードを新しいレコードに置き換える場合は、実際にはMERGEがUPDATEより優れている可能性があります。 UPDATEを使用すると、値を失わせる追加の手順を実行する必要があります。 – Tom

+0

毎月3GBのデータを取得しており、毎日データを更新する必要があります。効率的な構文はどれですか?再びありがとう – useR

+0

@useRあなたはいくつかの調査とテストをする必要があります。 UPDATEは新しいデータを作成しますので、おそらくあなたが望むものではありません。マスターはキーフィールドによって索引付けされていますか? MODIFYのドキュメントを徹底的に読む必要があります。 –

関連する問題