作者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/m.aspx?n=bbs/Statistics/M.1482483050.A.9C6.html