答案 0 :(得分:1)
一种简单的方法是使用GROUP BY
列中的emp_id
子句,然后使用聚合方法MAX()
和MIN()
获得所需的结果。请注意,要映射到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
答案 1 :(得分:0)
您可能必须将GROUP BY
与MIN
和MAX
函数结合使用才能达到要求。
SELECT emp_id,
MIN(tap_in) AS tap_in,
MAX(tap_in) tap_out
FROM TABLE
GROUP BY emp_id
答案 2 :(得分:-1)
请参见以下简单查询
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