作者qekvdfd (qekvdfd)
看板Statistics
标题[程式] SAS SQL 合并资料问题?
时间Mon Oct 26 22:17:54 2015
[软体程式类别]:
SAS
[程式问题]:
如何使用SAS Proc sql 水平合并资料
[软体熟悉度]:
新手 (一周)
[问题叙述]:
原先分别有两个Excel档案是: Ipo.xlsx 及 Calendar.xlsx
欲将两个档案中的第一栏的「日期」当成合并基础,进行水平合并
Ipo.xlsx第一栏变数名称是 Date I
将资料汇入SAS後如下图
http://imgur.com/XElKNfK
Calendar.xlsx第一栏变数名称是 Date L
将资料汇入SAS後如下图
http://imgur.com/CramYWi
然而,Ipo资料中的日期有些是重复的,欲全部保留
Ex:
下图红色框,22March2005有三笔
http://imgur.com/6qFaQ7O
Ipo跟Calendar合并後,希望三笔都能存在
因此让Ipo as Left join
这样是对的吗???
然而请参考以下程式范例,
以及error的地方,
恳请各位版友指教,
如何修改程式码????
小弟第一次写程式,有明显错误的地方恳请见谅,
若有成功解决,愿奉上100P,当成小小心意
[程式范例]:
Code 如下图:
http://imgur.com/IsnXlYw
或是:
proc sql;
create table merge1 as
select *
from Ipo as Ipo left join Calendar as Calendar
where Ipo."Date I"n=Calendar."Date L"n
order by Ipo."Date I"n;
quit;
Error 如下图:
http://imgur.com/HXeXKKB
恳请帮忙了
谢谢!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.119.120
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1445869079.A.B8E.html
1F:推 h14753951: where 改成on应该就可以了 10/27 10:18
谢谢各位版友,经由我跟我同学讨论後,已解决
附上以下code给若有需要的版友参考
PS送上100p给h大 表示小小心意
proc sql;
create table merge2 as select * from Ipo , Calendar
where(Calendar. DateL=Ipo. DateI)
order by DateI;
quit;
run;
※ 编辑: qekvdfd (118.163.12.181), 10/29/2015 17:55:37