我有一张table叫 log_attendance所需输出:谢谢你的帮助
log_attendance
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
hl0ma9xz2#
一个简单的方法就是 GROUP BY 条款 emp_id 列,然后使用聚合方法 MAX() 以及 MIN() 为了达到预期的效果。注意,对于Map到 NULL 值需要进行额外检查,如下所示:
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
4uqofj5v3#
你可能不得不使用 GROUP BY 与 MIN 以及 MAX 以达到您的要求。
MIN
MAX
SELECT emp_id, MIN(tap_in) AS tap_in, MAX(tap_in) tap_out FROM TABLE GROUP BY emp_id
3条答案
按热度按时间gmxoilav1#
请看下面的简单查询
hl0ma9xz2#
一个简单的方法就是
GROUP BY
条款emp_id
列,然后使用聚合方法MAX()
以及MIN()
为了达到预期的效果。注意,对于Map到NULL
值需要进行额外检查,如下所示:你也可以在这里查看:db fiddle
4uqofj5v3#
你可能不得不使用
GROUP BY
与MIN
以及MAX
以达到您的要求。