如何合并一列的结果,然后分成两列

How to combine results from one column and then split into 2 columns

我在合并然后拆分列时遇到了一些困难

Table: persona

Name                    date        time                InOut
--------------------------------------------------------------
MANCA GIOVANNI          2019-12-06  10:50:00.0000000    I
MANCA GIOVANNI          2019-12-06  12:55:00.0000000    O
HAMPIT RICKY            2019-12-06  12:55:00.0000000    O
HAMPIT RICKY            2019-12-06  10:50:00.0000000    I
RODRIGUEZ CARLOS DANIEL 2019-12-06  10:50:00.0000000    I
RODRIGUEZ CARLOS DANIEL 2019-12-06  12:55:00.0000000    O

基于此table我想要如下输出

Name                    date        InTime              OutTime
--------------------------------------------------------------
MANCA GIOVANNI          2019-12-06  10:50:00.0000000    12:55:00.0000000
HAMPIT RICKY            2019-12-06  10:50:00.0000000    12:55:00.0000000
RODRIGUEZ CARLOS DANIEL 2019-12-06  10:50:00.0000000    12:55:00.0000000

这是我试过的代码

SELECT Name, date, time as InTime, time as OutTime
FROM persona 
WHERE InOut = 'I' and InOut = 'O' 

谢谢

做一个GROUP BY。使用 case 表达式来分隔 In 和 Out。

SELECT Name, date,
       max(case when InOut = 'I' then time end) as Intime,
       max(case when InOut = 'O' then time end) as Outime
FROM persona 
group by Name, date

(如果一个人在同一日期进进出出,可能需要进行一些调整。)

好吧,如果同一个人在同一天有多个 Intime 和 Out Time,您可以通过修改 'jarlh'

提供的查询来跟踪第一个 Intime 和最后一个 Out Time
SELECT Name, date,
       min(case when InOut = 'I' then time end) as Intime,
       max(case when InOut = 'O' then time end) as Outime
FROM persona 
group by Name, date