作者tew (咖啡王子)
站內Statistics
標題Re: [程式] 請問sas的多對多MERGE
時間Mon Apr 18 23:33:44 2011
※ 引述《zend ( )》之銘言:
: [軟體程式類別]:
: SAS
: [程式問題]:
: merge
: [軟體熟悉度]:
: 低(1~3個月)
: 現在想要合兩個資料檔
: data 1
: code num cap
: 1 1001 1 242
: 2 1001 4 510
: 3 1001 5 243
: 4 1002 6 231
: 5 1002 4 532
: 6 1002 1 415
: .
: .
: data 2
: code asset date
: 1 1001 45 1999
: 2 1001 54 2000
: 3 1001 42 1985
: 4 1001 42 2001
: 5 1001 87 2010
: 6 1002 45 1991
: 7 1002 12 1994
: .
: .
: 我想要合成另一個 以code為基準
: 也就是data1的第一筆 要合到data2的1-5筆
: 譬如 我想要合成
: code num cap asset date
: 1 1001 1 242 45 1999
: 2 1001 1 242 54 2000
: 3 1001 1 242 42 1985
: 4 1001 1 242 42 2001
: 5 1001 1 242 87 2010
: 6 1001 4 510 45 1999
: 7 1001 4 510 54 2000
: .
: .
: .
: 也就是說 最後code=1001的資料應該要有3*5=15筆
: 但我用merge by code的結果無法這樣子
: 猜測是因為data1的code 1001的資料不只一筆
: SAS無法分辨
: 請問此種多對多的merge應該要怎麼寫呢?
proc sql;
create table a as select *
from data1 data2
where data1.code=data2.code;
quit;
try this code
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.70.10.53
推 west1996:第三行漏了逗號 form data1, data2 04/18 23:51
推 zend:高手!!! 加了逗號就可以了XD 謝謝兩位大大 我要來研究sql 04/19 00:00
→ kingbee:merge前要先把資料sort 若改用SQL 則有分left join 04/19 09:46
→ liton:咦~~以前t大好像不寫sql的... 04/19 23:12
→ tew:我有寫過呀 只是沒L大那麼厲害 04/20 08:31