Ребят нужен совет по чистому SQL. Нужен отчет по времени работы

сотрудников. Сотрудник нажал кнопку, начал работать. Записалось в базе:
id_сотрудника | датавремя | статус
——————————————————————————————————————————
1 | 2021-08-30 8:01 | 1
далее человек пошел попить чайку нажал кнопку в базу записалось:
1 | 2021-08-30 10:15 | 0

Итого в таблице получается что то типа такого:
id_сотрудника | датавремя | статус
——————————————————————————————————————————
1 | 2021-08-30 8:01 | 1
2 | 2021-08-30 9:51 | 1
3 | 2021-08-30 9:58 | 0
1 | 2021-08-30 10:15 | 0
1 | 2021-08-30 10:25 | 1
2 | 2021-08-30 11:13 | 0
и т.д.

Нужно выводить отчет по каждому сотруднику за определенный период. Сколько сотрудник по времени был в рабочем статусе.
Например задаем определенный период с 1 по 31 число:
Сотрудник 1: 65:29:21
Сотрудник 2: 53:11:23
и тд
Можно ли это сделать в виде запроса на SQL или нужно писать внешний код который и будет это вычислять.
Или же есть какие то более простые способы реализовать данный функционал?

6 ответов

10 просмотров

Стикер

А нельзя писать время присутствия(количество минут(секунд), вместо даты?

Art- Автор вопроса

нет. Потому что отчет по времени нужно по разным периодам делать.

Тебе надо сначала выделить последовательные интервалы работы человека. Это не реляционная задача в принципе. Решается в СУБД курсором с пробегом по таблице по порядку времени. Это за О(n ). Запросом это тоже можно, но будет за О(n*n) нет смысла делать

Art- Автор вопроса

Что означает "выделить последовательные интервалы работы человека"?У меня есть грубо говоря кнопка на IP телефоне которую сотрудник нажимает и начинает работу. В это время я могу что то записать в базу

У тебя начало интервала в одной записи, соответствующий конец - в другой записи. а надо чтобы начало и конец интервала работы были бы в ОДНОЙ записи.

Похожие вопросы

Обсуждают сегодня

Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Вы когда из вики.... копировали, не обратили внимание на года(ы)? 😉 ==== если до 1917 года в Москве было около 15 000 легковых извозчиков, то к 1920 году их осталось 5 000, а ...
Igor Mitin
4
На счёт замены разрабов нейронами: Вряд-ли заказчик сможет нормально пояснить нейросети, чё он хочет. Они то человеку нормально пояснить не могут, не то что нейросети. Так что...
Alex Kom
1
Слушайте, а при создании навигации на Tailor рили нельзя определять активный пункт навигации, как в Static Pages?
Pavel Lautsevich
11
Что я могу сказать? Погуглите получше - чтобы узнать: 1. Что будет стоить содержание машины 2. Что будет стоить содержании лошади. P.S. Моя мысль о том, повторюсь еще раз,...
Igor Mitin
1
Господа, а как такое в миграцию засунуть?
Денис Александрович
12
Карта сайта