我已經表3列:AGENT_ID,LOG_ID,日期SQL組無法正常工作時的日期在兩列
|log_id |agent_id|date |
----------------------------------------
|0 |1037 |'2013-05-11 10:26:30'|
|1 |1041 |'2013-05-11 13:01:30'|
|0 |1029 |'2013-05-11 08:22:30'|
|0 |1058 |'2013-05-11 07:04:30'|
|0 |1087 |'2013-05-11 18:54:30'|
|1 |1039 |'2013-05-11 15:21:30'|
|0 |1056 |'2013-05-11 14:28:30'|
|0 |1039 |'2013-05-11 08:12:30'|
而現在,我想這組結果:
當log_id = 1
然後在欄顯示日期「登錄」
當列log_id = 0
則顯示日期「註銷」
我寫的SQL查詢
select
agent_id,
CASE WHEN log_id = 0 THEN date
ELSE NULL
END as "logged in",
CASE WHEN log_id = 1 THEN date
ELSE NULL
END as "logged out"
FROM agents
group by agent_id, log_id, date
但它沒有按預期工作。
|agent_id|logged_in |logged_out |
----------------------------------------------------
1041 | | 2013-05-11 13:01:30
1029 |2013-05-11 08:22:30 |
1039 |2013-05-11 08:12:30 |
1058 |2013-05-11 07:04:30 |
1039 | | 2013-05-11 15:21:30
1056 |2013-05-11 14:28:30 |
1087 |2013-05-11 18:54:30 |
1037 |2013-05-11 10:26:30 |
例如logged_in和logged_out其中agent_id = 1039應該在一行中。
你應該關鍵字讀了'離開join' – fyr 2013-05-13 10:53:27
你怎麼確定哪些LOGGED_IN和logged_out日期爲每劑需要 - 如果有多個日期哪一個你想包括? – Dibstar 2013-05-13 11:00:20