作者blackhores (八亿)
看板Statistics
标题[程式] PROC SQL 合并日期取单笔最靠接近
时间Fri Dec 23 16:50:45 2016
[软体程式类别]:
SAS
[程式问题]:
资料处理 之 PROC SQL合并
[软体熟悉度]:
新手
[问题叙述] + [程式范例]:
范例如下
AAA的档案栏位
NAME DATE
e.g. 台积电 20090901
台积电 20100901
台积电 20110901
BBB的档案
NAMES EFFECT DATE NO
e.g. 台积电 20090101 代号0001
台积电 20100501 代号2001
希望合并後结果
e.g. NAME DATE NO
台积电 20090901 代号0001
台积电 20100901 代号2001
台积电 20110901 代号2001
合并目的是将资料AAA加入代号(在资料BBB里),
合并条件是 DATE 必须大於 有效起始日EFFECT DATE,同时取最大的,
像上面资料AAA的第二笔的DATE 20100901 同时大於 资料BBB的两个EFFECT DATE,
合并後想要只留下EFFECT为20100501(代号2001)的那一笔。
简单来说就是大於等於後不只一笔,取日期最大的,
以下为想到的SAS写法,但是只有合并没有加入取最大的条件
想请教大家可以怎麽做修改,感谢!
PROC SQL;
create table CCC as
select * from AAA as a
left join BBB as b
on AAA.NAME = b.NAMES
where (a.DATE >= b.EFFECT DATE);
order by DATE NAME;
quit;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.120.242.5
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1482483050.A.9C6.html