[程式] SAS多對多合併求救

看板Statistics作者 (yummy)時間7年前 (2017/02/19 20:34), 7年前編輯推噓2(2021)
留言23則, 3人參與, 最新討論串1/1
已趴文 想請板上高手幫忙(300P表心意) 我有兩個database A.B A的資料型態 SEQ DATE 1 2016/03/03 1 2016/03/05 1 2016/05/04 2 2014/07/30 2 2015/05/12 2 2015/09/09 2 2016/01/01 3 2017/02/01 B的資料型態 SEQ IN_DATE OUT_DATE 1 2016/03/01 2016/03/09 1 2016/05/02 2016/05/05 1 2016/06/04 2016/06/09 1 2016/07/08 2016/09/21 1 2016/09/30 2016/10/01 2 2014/06/03 2014/06/21 2 2014/07/31 2014/08/21 2 2015/05/11 2015/09/11 2 2016/01/01 2016/01/09 3 2016/09/22 2016/09/28 3 2017/02/09 2017/02/11 我想要將A.B進行多對多合併 也就是要將A資料中的日期套進B資料的區間 進而計算無法套在區間內的筆數 預計合併後如下 SEQ IN_DATE OUT_DATE DATE 1 2016/03/01 2016/03/09 2016/03/03 1 2016/03/01 2016/03/09 2016/03/05 1 2016/05/02 2016/05/05 2016/05/04 2 .(對不到) .(對不到) 2014/07/30 2 2014/05/11 2014/09/11 2015/05/12 2 2015/05/11 2015/09/11 2015/09/09 2 2016/01/01 2016/01/09 2016/01/01 3 .(對不到) .(對不到) 2017/02/01 因為資料很多 而且又是多對多合併 目前處理一週還是寫不出來合併方法 合併又必需配對時間這樣有辦法用proc sql left join寫嗎? 請板上各位高手幫幫忙或惠賜建議方法囉^^拜託了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.210.43.141 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1487507691.A.DE0.html ※ 編輯: ip1020 (218.210.43.141), 02/19/2017 20:38:45 ※ 編輯: ip1020 (218.210.43.141), 02/19/2017 20:55:43

02/20 00:51, , 1F
proc sql; create table new as select x.in_date, x.out
02/20 00:51, 1F

02/20 00:51, , 2F
_date, y.date from data1 as y left join data2 as x wh
02/20 00:51, 2F

02/20 00:51, , 3F
ere x.in_date<=y.date<=x.out_date; quit;
02/20 00:51, 3F

02/20 12:28, , 4F
先謝謝a大幫忙 早上試跑 現以下錯誤
02/20 12:28, 4F

02/20 12:28, , 5F

02/20 12:31, , 6F
少了DATA1的SEQ和DATA2的SEQ的連結要寫在ON嗎?
02/20 12:31, 6F

02/20 12:32, , 7F
On x.seq=y.seq; quit; 還是出現ㄧ樣error
02/20 12:32, 7F

02/20 16:32, , 8F

02/20 16:33, , 9F
那把seq跟where的東西都放在on裡面,我test的結果是對的
02/20 16:33, 9F

02/20 16:33, , 10F
你試試看唷~
02/20 16:33, 10F

02/20 22:38, , 11F
Out_date前面漏寫了x. 嗎
02/20 22:38, 11F

02/21 00:20, , 12F
後來下午test a大提供的語法是可以的 不過資料量太大 還沒
02/21 00:20, 12F

02/21 00:20, , 13F
時間驗證單筆資料無誤 等我明後天確認後再回報 看起來是沒
02/21 00:20, 13F

02/21 00:20, , 14F
問題
02/21 00:20, 14F

02/21 00:22, , 15F
先謝謝a大幫忙囉 300p以表小小謝意^^
02/21 00:22, 15F

02/21 00:26, , 16F
感謝i大提醒 那邊我有修正了^^
02/21 00:26, 16F

02/21 11:53, , 17F
另外想請問 跑出來的new 資料筆數應該要跟data1ㄧ樣嗎?因
02/21 11:53, 17F

02/21 11:53, , 18F
為合併之後多了好多筆(?)
02/21 11:53, 18F

02/22 14:45, , 19F
請check住院期間是否有overlap,程式區間是左右都包,如
02/22 14:45, 19F

02/22 14:45, , 20F
果住院區間是1/1-2/1與2/1-3/1,那2/1這天就會出現在兩
02/22 14:45, 20F

02/22 14:45, , 21F
住院期,資料就會重覆。
02/22 14:45, 21F

02/24 21:24, , 22F
瞭解了 overlap的問題確實有存在資料中 但不是住院data啦
02/24 21:24, 22F

02/24 21:24, , 23F
不過性質有接近XD 哈
02/24 21:24, 23F
文章代碼(AID): #1OgP3htW (Statistics)