如何合并一列的结果,然后分成两列
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
我在合并然后拆分列时遇到了一些困难
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 TimeSELECT 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