2017-01-20 110 views
0

我有兩張表,情況如下:一張表跟蹤一家公司的員工,例如最簡單的情況下只有id和一個支票YES或NO,如果員工在樓裏。另一張表跟蹤所有員工離開大樓的事件。從另一列中選擇更新列

活動表有 ID || event_date

僱員 ID || inside

事件表對同一名員工有多個條目,因爲他已經多次離開建築物。

我需要使用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 
+3

添加一些樣本表數據和預期的結果。 (以及格式化的文本。) – jarlh

+0

「問題是它不僅僅需要最大條目,它需要多個條目。」這是什麼意思?一些樣本數據和預期結果將有助於澄清你的意圖是什麼,因爲目前還不清楚你想要解決什麼問題。 – MT0

回答

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