[英]Merge two rows into one row mysql
this is my table schema 这是我的表架构
id | name | number | status | logtime | logdate
1 John 1001 in 8:00 AM 10/01/2016
2 John 1001 out 5:00 PM 10/01/2016
3 Carl 1002 in 8:01 AM 10/01/2016
4 John 1001 in 8:00 AM 10/02/2016
5 John 1001 out 5:00 PM 10/02/2016
and how do i merge the two rows of the same logdate into one, looking like this as result 以及如何将同一日志日期的两行合并为一,结果如下
name | number | time_in | time_out | logdate
John 1001 8:00 AM 5:00 PM 10/01/2016
John 1001 8:00 AM 5:00 PM 10/02/2016
Carl 1002 8:01 AM NULL 10/01/2016
i used CASE syntax on my query but the result isn't the same as a wanted to. 我在查询中使用了CASE语法,但结果与想要的结果不同。 Surely, there's something wrong with my query.
当然,我的查询有问题。 Here's my query btw:
这是我的查询顺便说一句:
SELECT
number,
name,
CASE status WHEN 'in' THEN logtime END AS time_in,
CASE status WHEN 'out' THEN logtime END AS time_out,
LogDate
FROM
tbl_attendanceraw
Group by logdate
TIA! TIA!
You want conditional aggregation: 您需要条件聚合:
SELECT number, name,
MAX(CASE status WHEN 'in' THEN logtime END) AS time_in,
MAX(CASE status WHEN 'out' THEN logtime END) AS time_out,
LogDate
FROM tbl_attendanceraw
Group by logdate, number, name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.