看板 Database 關於我們 聯絡資訊
小弟想這問題已經兩天了,想出直接用SQL語法組出來, 不然就得用程式去跑了。 假設目前有兩個Table,Table1、Table2 Table1存的是員工的升遷歷史,如部門、升遷的日期 PK:ID+DEPID(部門ID)+UPDATE(升遷日期) Table2存的是員工的加班資料,員工ID、加班的時間 PK:ID+PLUSDATE 問題為:找到某員工在某日加班的時候,所在的部門為何? 看似簡單的問題,但是 第一:升遷的日期與加班的時間並不會相同。 第二:加班的日期會有很多筆、升遷的日期也會有很多筆 目前我的寫法是: SELECT A.ID, A.PLUSDATE B.DEPID FROM TABLE1 A LEFT JOIN (SELECT ID, PLUSDATE FROM TABLE2 WHERE ID='12345678' ORDER BY PLUSDATE DESC FETCH FIRST 1 ROWS ONLY)B ON A.UPDATE<B.PLUSDATE ------------------------------------------------------------- 這樣寫只能把最近一筆加班與部門JOIN 但如果某人在A部門加完2次班後,後來調至B部門加了3次班 如何能夠把某員工在某時間內加班的時間與所屬部門「全部」SELECT出來 SQL語法是否做的到呢? 謝謝各位高手看完小弟問題!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.69.56