我登录的表看起来像这样:按日期选择相同组的列到不同的列
Created | Action
20/01/2016 08:00:00 AM login
20/01/2016 10:05:10 AM logout
20/01/2016 12:00:00 PM login
20/01/2016 04:12:22 PM logout
21/01/2016 08:00:50 AM login
21/01/2016 09:44:42 AM login
21/01/2016 10:44:42 AM login
21/01/2016 04:00:42 PM logout
我需要选择一个结果集,看起来像这样:
Created | Login | Logout
20/01/2016 08:00:00 AM 04:12:22 PM
21/01/2016 08:00:50 PM 04:00:42 PM
这里是我曾尝试过的:
SELECT
CONVERT(VARCHAR(10),li.Created,10) [Date],
CONVERT(VARCHAR(8),MAX(li.Created),8) [Login],
CONVERT(VARCHAR(8),MAX(lo.Created),8) [Logout]
FROM Logins li
LEFT JOIN Logins lo ON lo.[Action] = 'logout'
GROUP BY li.Created
但是结果没有按日期分组。
什么是正确的方法?
尝试'由CONVERT(VARCHAR(10),li.Created,10)'组代替。 – jpw
你怎么知道04:12:22 AM由于某种原因在同一天08:00:00 AM?什么规定哪个时间选择? –
@JoachimIsaksson这是一个错字,我纠正了它 – Smith