全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5663 10
2010-03-28
悬赏 1000 个论坛币 已解决
表1
交易所 公司    时间        价格
SH        1      20040102   3
SH        1      20040103   7
SH        2      20040102   3
SH        2      20040103   6
SZ        1      20040102    3
SZ       1       20040103    1
SZ       2       20040102    5
SZ       2       20040103    3


表2
交易所 时间      收益
SH      20040102       5
SH      20040103       6


表3
交易所 时间         收益

SZ      20040102       2
SZ      20040103       3

现在需要将数据合并成一个表格样式如下:


交易所 公司    时间        价格  收益
SH        1      20040102   3          5
SH        1      20040103   7         6
SH        2      20040102   3         5
SH        2      20040103   6          6
SZ        1      20040102    3         2
SZ       1       20040103    1         3
SZ       2       20040102    5         2
SZ       2       20040103    3         3


谢谢大家!

最佳答案

luijb 查看完整内容

如果数据量比较大的话,用我的程序吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-3-28 14:04:26
复制代码
如果数据量比较大的话,用我的程序吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-28 15:13:17
data tb_1;
input bourse $ com $ time $ price $;
cards;
SH        1      20040102   3
SH        1      20040103   7
SH        2      20040102   3
SH        2      20040103   6
SZ        1      20040102    3
SZ       1       20040103    1
SZ       2       20040102    5
SZ       2       20040103    3
;
run;
data tb_2;
input bourse $ time $ prof $;
cards;
SH      20040102       5
SH      20040103       6
;
run;
data tb_3;
input bourse $ time $ prof $;
cards;
SZ      20040102       2
SZ      20040103       3
;
run;



proc sql;
create table tb_fnl as select
  a.*, coalesce(b.prof,c.prof) as prof
from tb_1 as a
  left join tb_2 as b on a.bourse=b.bourse and a.time=b.time
  left join tb_3 as c on a.bourse=c.bourse and a.time=c.time
order by bourse,com,time;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-28 23:22:13
*** merge method for fun  **;
proc sort data=tb_1; by bourse time; run;
proc sort data=tb_2; by bourse time; run;
proc sort data=tb_3; by bourse time; run;

data combTable;
  merge tb_1 tb_2 tb_3;
  by bourse time;
run;

proc sort data=combTable;
   by bourse com time;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-29 09:34:58
先合并表2表3,再用sql合并表1。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-29 09:55:15
谢谢鼓励啊,我就一个问题,你的那么多论坛币是哪里弄来的啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群