如何将1个表中的2个值连接到1行中?

0s0u357o  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(391)

我有一张table叫 log_attendance
所需输出:

谢谢你的帮助

gmxoilav

gmxoilav1#

请看下面的简单查询

SELECT empid,
   min([tap In]) [tap In] ,CASE WHEN  min([tap In])= max([tap In]) THEN NULL ELSE max([tap In]) END [tap out] 
FROM
    log_attendance 
 GROUP BY empid
hl0ma9xz

hl0ma9xz2#

一个简单的方法就是 GROUP BY 条款 emp_id 列,然后使用聚合方法 MAX() 以及 MIN() 为了达到预期的效果。注意,对于Map到 NULL 值需要进行额外检查,如下所示:

SELECT
    emp_id,
    MIN(tap_in) AS tap_in,
    IF(MIN(tap_in) = MAX(tap_in), NULL, MAX(tap_in)) AS tap_out
FROM
    log_attendance
GROUP BY
    emp_id

你也可以在这里查看:db fiddle

4uqofj5v

4uqofj5v3#

你可能不得不使用 GROUP BYMIN 以及 MAX 以达到您的要求。

SELECT emp_id,
       MIN(tap_in) AS tap_in,
       MAX(tap_in) tap_out
FROM TABLE
GROUP BY emp_id

相关问题