簡體   English   中英

將兩行合並成一行mysql

[英]Merge two rows into one row mysql

這是我的表架構

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

以及如何將同一日志日期的兩行合並為一,結果如下

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

我在查詢中使用了CASE語法,但結果與想要的結果不同。 當然,我的查詢有問題。 這是我的查詢順便說一句:

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!

您需要條件聚合:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM