作者msplay (Hello Moto)
看板Database
标题[SQL ]由Table中捞取资料後Join到另外一个Table
时间Fri Mar 21 22:02:56 2008
小弟想这问题已经两天了,想出直接用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