Продолжение со ссылки вопрос , который я когда-то задавал go.
У меня есть «Новый случай» в этом запросе. У меня есть 3 таблицы здесь HrAttLogs
, HrEmployee
, HrEmployeeShift
, где таблица HrAttLogs
является основной таблицей. Внутри таблицы HrAttLogs
есть поле Status
, где Status = 0
означает ScanIn
, а Status = 1
означает ScanOut
HrAttLogs:
| Id | MachineIp | FingerId | Date | Time | Status | Verified | DateCreated |
| ---- | ----------- | -------- | ---------- | -------- | ------ | -------- | ------------------- |
| 2670 | 10.20.20.73 | 61 | 2020-04-07 | 20:52:50 | 0 | 1 | 2020-04-22 14:46:23 |
| 2462 | 10.20.20.73 | 61 | 2020-04-08 | 21:04:49 | 0 | 1 | 2020-04-22 14:46:23 |
| 2594 | 10.20.20.73 | 61 | 2020-04-08 | 07:29:46 | 1 | 1 | 2020-04-22 14:46:23 |
| 2403 | 10.20.20.73 | 61 | 2020-04-09 | 07:21:32 | 1 | 1 | 2020-04-22 14:46:23 |
с запросом, который Я сделал здесь результат:
| FingerId | ShiftId | DateIn | DateOut | ScanIn | ScanOut | WorkhourIn | WorkhourOut | TIME_IN | TIME_OUT |
| -------- | ------- | ---------- | ---------- | -------- | -------- | ---------- | ----------- | --------- | -------- |
| 61 | 10 | 2020-04-07 | 2020-04-08 | 20:52:50 | 21:04:49 | 21:00:00 | 07:00:00 | -00:07:10 | 00:04:49 |
| 61 | 10 | 2020-04-08 | 2020-04-08 | 07:29:46 | 21:04:49 | 07:00:00 | 14:00:00 | 00:29:46 | 00:04:49 |
| 61 | 10 | 2020-04-09 | 2020-04-09 | 07:21:32 | | 07:00:00 | 14:00:00 | 00:21:32 | |
Проблема в том, когда ScanIn
выше 19:00
, где ScanIn
и ScanOut
, DateIn
и DateOut
разные, Выход, который я ожидаю:
| FingerId | ShiftId | DateIn | DateOut | ScanIn | ScanOut | WorkhourIn | WorkhourOut | TIME_IN | TIME_OUT |
| -------- | ------- | ---------- | ---------- | -------- | -------- | ---------- | ----------- | --------- | -------- |
| 61 | 10 | 2020-04-07 | 2020-04-08 | 20:52:50 | 07:29:46 | 21:00:00 | 07:00:00 | -00:07:10 | 00:29:46 |
| 61 | 10 | 2020-04-08 | 2020-04-09 | 21:04:49 | 07:21:32 | 21:00:00 | 07:00:00 | 00:04:49 | 00:21:32 |