我对子查询有疑问。我有桌子:
Emp_ID | 日期_条目 | 时钟输入 | 下班 |
---|---|---|---|
E-0001 | 2024-02-01 | 2024-02-01 22:01:00 | 空 |
E-0001 | 2024-02-02 | 空 | 2024-02-02 06:01:05 |
E-0001 | 2024-02-03 | 2024-02-03 06:01:00 | 2024-02-03 14:00:20 |
E-0001 | 2024-02-04 | 2024-02-04 08:00:00 | 2024-02-04 17:01:05 |
如何使用mysql查询,以便当clock_in >= 22:00:00时,clock_out选择第二天的clock_out,如下所示?:
Emp_ID | 日期_条目 | 时钟输入 | 下班 |
---|---|---|---|
E-0001 | 2024-02-01 | 2024-02-01 22:01:00 | 2024-02-02 06:01:05 |
E-0001 | 2024-02-02 | 空 | 2024-02-02 06:01:05 |
E-0001 | 2024-02-03 | 2024-02-03 06:01:00 | 2024-02-03 14:00:20 |
E-0001 | 2024-02-04 | 2024-02-04 08:00:00 | 2024-02-04 17:01:05 |
任何帮助将不胜感激。预先感谢您!
SELECT t1.Emp_ID,
t1.Date_Entry,
t1.Clock_In,
-- return next-day time if joined and is not NULL
-- and current-day time if not joined
COALESCE(t2.Clock_Out, t1.Clock_Out) Clock_Out
FROM table t1
-- join only when time is above 22:00
LEFT JOIN table t2 ON TIME(t1.Clock_In) >= '22:00'
-- join only next-day row (if exists)
AND t1.Date_Entry + INTERVAL 1 DAY = t2.Date_Entry