假设我有以下就业历史表:
Employee ID | Employer ID | Start Date | End Date | Status
---------------------------------------------------------------
1 | AA | 1/1/2019 | | Part-Time
1 | BB | 1/1/2000 | | Full-Time
2 | CC | 3/1/2019 | | Part-Time
2 | DD | 3/1/2000 | 5/15/2021 | Full-Time
以及ID为1、2和3的员工。
select employee.id, employer.id
from Employee employee left join EmploymentHistory eh on eh.employeeId = employee.id
left join Employer employer on eh.employerId = employer.id
但我不知道该怎么说,如果雇员没有在职雇主,那就给我一个空的雇主ID。如果他们有全职的在职(如无结束日期)就业历史记录,那就给我最新的记录,如果他们没有在职全职记录,那就给我最新的兼职记录。
我开始用子查询进入循环,并尝试根据最大开始日期进行选择,我被各种各样的改变了。
最后,我希望结果是这样的:
Employee ID | Employer ID
---------------------------
1 | BB |
2 | CC |
3 | <null> |
这可能吗?