как получить общее количество рабочих часов с датой и временем на сервере sql со ссылкой на время регистрации и проверки на следующий день - PullRequest
0 голосов
/ 10 июля 2020

У меня есть эта таблица, и я хочу получить time_in и time_out

BADGENUMBER CHECKTIME   SENSORID
172 2020-06-16 19:24:49.000 1
172 2020-06-17 05:30:03.000 1
172 2020-06-17 19:41:17.000 1
172 2020-06-18 08:07:51.000 1
172 2020-06-18 19:10:57.000 1
172 2020-06-19 05:25:12.000 1
172 2020-06-20 19:06:06.000 1
172 2020-06-21 05:11:24.000 1
172 2020-06-21 05:11:27.000 1
172 2020-06-21 18:55:04.000 1
172 2020-06-22 06:07:48.000 1
172 2020-06-22 18:34:48.000 1
172 2020-06-23 05:00:31.000 1
172 2020-06-16 19:24:49.000 1
172 2020-06-17 05:30:03.000 1
172 2020-06-17 19:41:17.000 1
172 2020-06-18 08:07:51.000 1
172 2020-06-18 19:10:57.000 1
172 2020-06-19 05:25:12.000 1
172 2020-06-20 19:06:06.000 1
172 2020-06-21 05:11:24.000 1
172 2020-06-21 05:11:27.000 1
172 2020-06-21 18:55:04.000 1
172 2020-06-22 06:07:48.000 1
172 2020-06-22 18:34:48.000 1
172 2020-06-23 05:00:31.000 1
172 2020-06-23 18:57:27.000 1
172 2020-06-23 18:57:29.000 1
172 2020-06-16 19:24:49.000 1
172 2020-06-17 05:30:03.000 1
172 2020-06-17 19:41:17.000 1
172 2020-06-18 08:07:51.000 1
172 2020-06-18 19:10:57.000 1
172 2020-06-19 05:25:12.000 1
172 2020-06-20 19:06:06.000 1
172 2020-06-21 05:11:24.000 1
172 2020-06-21 05:11:27.000 1
172 2020-06-21 18:55:04.000 1
172 2020-06-22 06:07:48.000 1
172 2020-06-22 18:34:48.000 1
172 2020-06-23 05:00:31.000 1
172 2020-06-23 18:57:27.000 1
172 2020-06-23 18:57:29.000 1
172 2020-06-24 07:06:40.000 1
172 2020-06-24 19:01:12.000 1
172 2020-06-24 19:01:20.000 1
172 2020-06-16 19:24:49.000 1
172 2020-06-17 05:30:03.000 1
172 2020-06-17 19:41:17.000 1
172 2020-06-18 08:07:51.000 1
172 2020-06-18 19:10:57.000 1
172 2020-06-19 05:25:12.000 1
172 2020-06-20 19:06:06.000 1
172 2020-06-21 05:11:24.000 1
172 2020-06-21 05:11:27.000 1
172 2020-06-21 18:55:04.000 1
172 2020-06-22 06:07:48.000 1
172 2020-06-22 18:34:48.000 1
172 2020-06-23 05:00:31.000 1
172 2020-06-23 18:57:27.000 1
172 2020-06-23 18:57:29.000 1
172 2020-06-24 07:06:40.000 1
172 2020-06-24 19:01:12.000 1
172 2020-06-24 19:01:20.000 1
172 2020-06-25 07:03:19.000 1
172 2020-06-25 18:53:55.000 1
172 2020-06-26 05:17:45.000 1
172 2020-06-28 19:09:34.000 1
172 2020-06-29 05:00:07.000 1
172 2020-06-29 05:00:09.000 1
172 2020-06-16 19:24:49.000 1
172 2020-06-17 05:30:03.000 1
172 2020-06-17 19:41:17.000 1
172 2020-06-18 08:07:51.000 1
172 2020-06-18 19:10:57.000 1
172 2020-06-19 05:25:12.000 1
172 2020-06-20 19:06:06.000 1
172 2020-06-21 05:11:24.000 1
172 2020-06-21 05:11:27.000 1
172 2020-06-21 18:55:04.000 1
172 2020-06-22 06:07:48.000 1
172 2020-06-22 18:34:48.000 1
172 2020-06-23 05:00:31.000 1
172 2020-06-23 18:57:27.000 1
172 2020-06-23 18:57:29.000 1
172 2020-06-24 07:06:40.000 1
172 2020-06-24 19:01:12.000 1
172 2020-06-24 19:01:20.000 1
172 2020-06-25 07:03:19.000 1
172 2020-06-25 18:53:55.000 1
172 2020-06-26 05:17:45.000 1
172 2020-06-28 19:09:34.000 1
172 2020-06-29 05:00:07.000 1
172 2020-06-29 05:00:09.000 1
172 2020-06-29 19:08:50.000 1
172 2020-06-30 05:23:19.000 1
172 2020-06-30 18:56:33.000 1

Я хочу получить время входа и выхода, если время выхода в следующий день, если существует

1 Ответ

0 голосов
/ 10 июля 2020

Если вы просто хотите объединить «нечетные строки» с «четными строками», вы можете использовать row_number():

select badgenumber, min(checktime), max(checktime)
from (select t.*, row_number() over (partition by badgenumber order by checktime) as seqnum
      from t
     ) t
group by floor( (seqnum - 1) / 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...