我们有一个员工表和另一个显示他们角色历史的表。历史记录表的生效日期是从角色开始时开始的。找到员工当前的角色是微不足道的,但我在某个时间点找到他们的角色时遇到了问题。
Example:
Table: Employee History
Columns: EmployeeID
Effective Date
Role
Sample Records: [ABC123, 1/4/2013, Developer]
[ABC123, 6/9/2013, Designer]
[DEF456. 8/5/2013, Manager]
Table: Event
Columns: EventID
Date
EmployeeID
Event Type
Sample Records: [1, 6/6/2013, ABC123, BOOKED_HOURS]
[2, 6/9/2013, ABC123, BOOKED_LEAVE]
[3, 8/5/2013, DEF456, SICK_LEAVE]
然后,我有另一个表格显示随着时间的推移发生的一系列事件,并希望了解员工在事件发生时的角色。我希望能够使用纯 SQL 而不是函数来做到这一点。
我追求的结果集是这样的:
[6/6/2013, ABC123, Developer, BOOKED_HOURS]
[6/9/2013, ABC123, Designer, BOOKED_LEAVE]
[8/5/2013, DEF456, Manager, SICK_LEAVE]
可以安全地假设员工将始终拥有一个角色,即他们无法在没有角色的情况下创建事件。
我已经为此绞尽脑汁太久了,所以任何帮助都将不胜感激。