【发布时间】:2020-06-03 16:20:01
【问题描述】:
我有一个包含员工当前状态的表格,如下所示:
SELECT EmployeeId ,OfficeId from EmpCurrent
输出如下:
EmployeeId OfficeId
54 67
64 57
89 23
我还有另一个表,其中包含员工的完整历史记录,但未记录的 OfficeId 除外(我添加了从 EmpCurrent 插入的 NULL 列 OfficeId):
SELECT EmployeeId ,Func AS [Function],OfficeId,Version from EmpHistory
EmployeeId=54 的输出如下所示:
EmployeeId Function OfficeId Version
54 Manager NULL 1
54 Director NULL 2
54 HeadOf NULL 3
我想从 EmpCurrent 获取 OfficeId 并将其插入到每个 Employee 的最后一个版本(最大版本)的 EmpHistory 中,我的输出将如下所示:
EmployeeId Function OfficeId Version
54 Manager NULL 1
54 Director NULL 2
54 HeadOf 67 3
【问题讨论】:
-
到目前为止您尝试了哪些方法,您在哪里遇到了困难?对于correlated subquery 或窗口函数,这是一个非常标准的用例。
标签: sql sql-server tsql