Я бы хотел сделать запрос, чтобы получить time_in
и time_out
, в поле time_in
сотрудник входит в офис в интервале от "06:15:00" AM
до "11:59:00" AM
, а для time_out
сотрудник выходит из офиса между "12:00:00" PM
до "23:59:00" PM
(для того же дня) и на следующий день time_out
действует до "12:00:00" AM
до "06:14:00" AM
, но у меня возникли проблемы с запросом, когда я хочу получить time_out
Я получил значение NULL на моя таблица, кто-нибудь может помочь мне решить мою проблему?
Для таблицы я добавлю изображение ниже: ![enter image description here](https://i.stack.imgur.com/MpHua.png)
Для запроса, который я использовал, чтобы показать, что результат:
SELECT no_reg, DATE, MIN(TIME) AS min_time, MAX(TIME) AS max_time,
CASE
WHEN TIME BETWEEN '06:15:00' AND '11:59:00' THEN MIN(TIME)
END AS time_in,
CASE
WHEN TIME BETWEEN '12:00:00' AND '23:59:00' THEN MAX(TIME)
END AS time_out,
CASE
WHEN LENGTH(no_reg) = 1 THEN SUBSTRING(unique_code, 1, 14)
WHEN LENGTH(no_reg) = 2 THEN SUBSTRING(unique_code, 1, 15)
WHEN LENGTH(no_reg) = 3 THEN SUBSTRING(unique_code, 1, 16)
WHEN LENGTH(no_reg) = 4 THEN SUBSTRING(unique_code, 1, 17)
WHEN LENGTH(no_reg) = 5 THEN SUBSTRING(unique_code, 1, 18)
WHEN LENGTH(no_reg) = 6 THEN SUBSTRING(unique_code, 1, 19)
WHEN LENGTH(no_reg) = 7 THEN SUBSTRING(unique_code, 1, 20)
END AS subs_no_reg
FROM raw_attendance
WHERE no_reg = '984'
GROUP BY DATE