2016-06-29 8 views
0

私のデータセットには請求額&払い戻しが含まれています。関連する場合は、請求額と払い戻し額を一致させたいと思います。私は一意の識別子を持っていて、どの行を追加すべきかを知ることができます。私はこれまで、Rソフトウェアを使用して十分に前に行ってきましたが、私のデータセットはSAS上にあります。SAS機能の検索

私はこれを行うことを可能にするクエリビルダの機能を誰も提案することはできません&おそらくそれがどのように使われているかを示しますか?

私のデータセットのスナップは以下の通りです。 enter image description here

+0

一意のIDごとに1レコードを取得しようとしていますか?これはこれが起こっているところにあるようです。 – DomPazz

+0

Dompazz、そうです。 – Paul

+0

OK、@Jetslerには最良の回答コードがあります。それは私がやったことです。 – DomPazz

答えて

1

さまざまな可能な方法があります。例えばProc SQL,Proc Means,Proc Summary,Data Step二重DOWを使用。 は非常に簡単(ちょうどproc sqlコードが生成されます)クエリビルダについてgroup by

Proc SQL
proc sql; 
create table data_want as 
    select a.*, sum(a.total) as new_total 
    from data_have a 
     group by a.UniqueID 
    ; 
quit; 

次のようになります。

  1. クエリの変数を選択する場合、すべての選択した変数の後ろに列Summaryがあります。これをtotal変数のSUMに設定します。
  2. GROUP変数を選択するよう求められます。ここで独自のIDを選択してください。
+0

あなたの信じられないほど速い応答のためにJetzlerに感謝します。私の質問は重要な点を省いた。これは、クエリビルダを使用して行うことができます。私は今これを私の質問に追加しました。ご協力いただきありがとうございます。 – Paul

+0

クエリビルダーはproc SQLコードを生成するので、指定された例を使用できます。私は私の答えを調整します。 – Jetzler

0
proc sort input_data; by 'Unique Identifier' /*In_date*/; 
run; 

data result; 
    set input_data; 
    by 'Unique Identifier'; 
    retain res_total 0; 
    if first.'Unique Identifier' then res_total = total; 
    res_total + total; 
    if last.'Unique Identifier' then output; 
run; 
+0

ご協力いただきありがとうございます。それでもまだ苦労しています。クエリビルダーに次のコードがあります。しかし、クエリービルダーは 'group by'コマンドや提案は好きではありませんか? THEN 'Refund_match' (t1.Unique_identifer = 0によって和(t1.Total_Loc_Cur)群)THEN 'Refund_match' ELSE CASE(t1.Unique_identifer = 0によって和(t1.Total_USD)基) 'Not_Refund' END – Paul

+0

なぜユーザープログラムコードを使用できず、Query Builderのインストールされているものを書き込めないのですか? –

+0

は、そのプログラムを管理してから元のデータテーブルに戻ってきました。ご協力いただきありがとうございます – Paul