作者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
1F:推 west1996:第三行漏了逗号 form data1, data2 04/18 23:51
2F:推 zend:高手!!! 加了逗号就可以了XD 谢谢两位大大 我要来研究sql 04/19 00:00
3F:→ kingbee:merge前要先把资料sort 若改用SQL 则有分left join 04/19 09:46
4F:→ liton:咦~~以前t大好像不写sql的... 04/19 23:12
5F:→ tew:我有写过呀 只是没L大那麽厉害 04/20 08:31