小弟想這問題已經兩天了,想出直接用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