gpt4 book ai didi

sql - 选择按日期将相同列分组到不同列中

转载 作者:行者123 更新时间:2023-12-02 16:14:45 25 4
gpt4 key购买 nike

我有一个如下所示的登录表:

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

但结果未按日期分组。

正确的方法是什么?

最佳答案

你可以这样尝试:

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 CAST(li.Created AS DATE)

即,您需要仅按日期的记录进行分组,而不是同时按日期和时间进行分组。

关于sql - 选择按日期将相同列分组到不同列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com