Database 板


LINE

※ 引述《gargamel (Nerding)》之銘言: : 推文等好久 : 我直接改 : 你table schema一定要改...我改的只是參考 : table1 加上一組key來當pk : table2 加上t1_key當做fk : 直接table1.key = table2.t1_key 就出來了 : Table1 Table2 : ------------------------------------ ----------------------- : ID key 部門 升遷日 t1_key ID 加班日 : ------------------------------------ ----------------------- : AAA 1 DO1 2008-02-10 1 AAA 2008-02-12 : AAA 2 D02 2008-02-20 1 AAA 2008-02-15 : AAA 3 D03 2008-03-10 2 AAA 2008-02-22 : BBB 4 D02 2008-02-12 2 AAA 2008-02-25 : BBB 5 D03 2008-03-08 3 AAA 2008-03-12 : 3 AAA 2008-03-18 : 4 BBB 2008-02-15 : TABle3 (希望的Results) 5 BBB 2008-03-10 : ----------------------------------- : pk ID 加班日 部門 : ----------------------------------- : 1 AAA 2008-02-12 D01 : 1 AAA 2008-02-15 D01 : 2 AAA 2008-02-22 D02 : 2 AAA 2008-02-25 D02 : 3 AAA 2008-03-12 D03 : 3 AAA 2008-03-18 D03 : 4 BBB 2008-02-15 D02 : 5 BBB 2008-03-10 D03 : ------------------------------------ 我的作法是把Table1的離開部門日期湊出來 (這是最麻煩的地方,因為資料庫沒有順序觀念) 再去Join Table2: ---------------------------------------------------------- DECLARE @table1 TABLE (ID nvarchar(10) , Dept nvarchar(10) , BeginDate datetime) INSERT INTO @table1 (ID, Dept, BeginDAte) VALUES ('AAA', 'D01', '2008-02-10') INSERT INTO @table1 (ID, Dept, BeginDAte) VALUES ('AAA', 'D02', '2008-02-20') INSERT INTO @table1 (ID, Dept, BeginDAte) VALUES ('AAA', 'D03', '2008-03-10') INSERT INTO @table1 (ID, Dept, BeginDAte) VALUES ('BBB', 'D02', '2008-02-12') INSERT INTO @table1 (ID, Dept, BeginDAte) VALUES ('BBB', 'D03', '2008-03-08') DECLARE @table2 TABLE (ID nvarchar(10) , PlusDate datetime) INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-02-12') INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-02-15') INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-02-22') INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-02-25') INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-03-12') INSERT INTO @table2 (ID, PlusDate) VALUES ('AAA', '2008-03-18') INSERT INTO @table2 (ID, PlusDate) VALUES ('BBB', '2008-02-15') INSERT INTO @table2 (ID, PlusDate) VALUES ('BBB', '2008-03-10') select A.ID, A.PlusDate, B.Dept from @table2 A left join ( select T1.ID, T1.Dept, T1.BeginDate, T2.BeginDate as EndDate from @table1 T1 left join @table1 T2 on T2.ID = T2.ID and T2.BeginDate = (select min(T3.BeginDAte) from @table1 T3 where T3.ID = T1.ID and T3.BeginDate > T1.BeginDate) ) B on B.ID = A.ID and A.PlusDate >= B.BeginDate and (B.EndDate is null or A.PlusDate < B.EndDate) ----------------------------------------------------- 如前面所講的,如果我可以決定Table Schema的話 我才不要開將Table開成這樣=_=麻煩死了 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.100.62 ※ 編輯: Antzzz 來自: 211.20.100.62 (03/22 15:26)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP