我有两个表,情况如下:一个表跟踪公司的员工,例如,在最简单的情况下只有id,如果员工在建筑物中,则检查是或否。另一张表记录了离开建筑物的员工的所有事件。
事件表有 ID || EVENT_DATE
雇员 ID ||内部
events表有同一员工的多个条目,因为他多次离开了大楼。
我需要使用leaving_date向employee表添加一列。 所以我通过获取事件的最大值来对事件表进行内部联接。问题是它不只需要最大条目。它需要多个条目。
SELECT A.id, MAX (event_date) EVENT_DATE
FROM employee A
INNER JOIN events B
ON A.id= B.id
WHERE B.id= A.id
GROUP BY id
答案 0 :(得分:0)
我认为你想要做的是计算子查询中的leaving_date
,然后将其加入employee
表:
SELECT A.id,
COALESCE(B.leaving_date, SYSDATE) AS leaving_date -- and maybe other columns
FROM employee A -- from employee
LEFT JOIN
(
SELECT id, MAX(event_date) AS leaving_date
FROM events
GROUP BY id
) B
ON A.id = B.id