Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
1
MS SQL

Учет рабочего времени.

22.09.2017, 15:11. Показов 3408. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
есть база СКУД(система контроля упр доступа). информация фиксируется по каждому сотруднику (зашел вышел - дата время)
на территорию с территории.
Для каждого сотрудника установлены окна времени в который он должен находиться на территории т.е. на работе
вид окон времени
08:30 до 12:30
13:30 до 17:30

и сотрудник Иванов И.И.
как организовать запрос для показывающий время прихода (опоздание опоздание если есть) ранний уход на обед если это имело место поздний приход с обеда если это имело место, ранний уход с работы если это имело место

не судите строго если токо бы по мин времени прихода и максимальному уходу устроило бы начальство не спрашивал бы здесь.
сотрудники могут прийти и уйти в любое время не уследишь нужно и это учитывать.
Дайте направление на решение задачи
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2017, 15:11
Ответы с готовыми решениями:

Табель учёта рабочего времени
как сделать табель рабочего времени мне нужен простейший чтобы можно было вводить часы за каждый...

Табель учета рабочего времени
Люди у кого есть исходники табеля учета рабочего времени в Делфи плиззззззззз выложите Очень срочно...

Табель учёта рабочего времени
как в делфи реализовать чтобы в бд можно было писать "В" - выходной или "Б" - больничный в таблице...

Табель учета рабочего времени
Приветствую. Стоит задача автоматизировать заполнение табеля учета рабочего времени. Функции: ...

7
552 / 482 / 191
Регистрация: 11.12.2013
Сообщений: 2,500
22.09.2017, 16:01 2
для начала надо знать как хранятся данные в бд, а потом уже определяться с запросом(запросами)
0
Айлурофил
 Аватар для Massaraksh7
477 / 410 / 110
Регистрация: 27.05.2017
Сообщений: 2,372
Записей в блоге: 3
22.09.2017, 17:37 3
Лучший ответ Сообщение было отмечено Reni как решение

Решение

Одним запросом затруднительно. Я бы сделал так:
1. Создал бы структуру
Delphi
1
2
3
type TInterval = record
          starttime,endtime:TDateTime;
          end;
2.Объявил бы 2 массива
Delphi
1
2
3
var allowtime:array [0..20] of TInterval;
realtime:array [0..20] of TInterval;
na,nr:integer;
3. Считал бы в них интервалы времени допустимые и реальные.
4. Сравнивая, создал бы новый массив, где они не пересекаются.
Delphi
1
var notallow:array [0..20] of TInterval;nn:integer;
5. Вывел бы интервалы этого массива, которые представляют временные интервалы, когда работник должен находиться на работе, но не находится.
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
22.09.2017, 18:06  [ТС] 4
Структура базы проста есть таблица с струдниками есть таблица с окнами времени они связаны соответ-но. Есть таблица логов куда пишеться кто когда зашел когда вышел.
По этим логам необходимо определить кто опоздал кто рано ушел . По каждому окну времени. Сотр в любое время могут выйти зайти.
Уже понял что одним запросом не получиться. Хотелось бы обойтись мин кол-ом запросов. У одного сотрудника могут быть до 4-5 окон времени и соот-но они охватывают переход даты. Это те которые работают в суточном режиме и могут выходить тко когда им положено. Я не прошу конкретное решение.Кто какой вариант алгоритма предложит может есть универсальные решения. Буду благодарен за идеи
0
Айлурофил
 Аватар для Massaraksh7
477 / 410 / 110
Регистрация: 27.05.2017
Сообщений: 2,372
Записей в блоге: 3
22.09.2017, 18:12 5
В #3 и предложено универсальное решение.
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
22.09.2017, 18:26  [ТС] 6
Да спасибо. Но может еще кто какой вариант решения предложит. Вам не интересно? Ну если нет то да этот вариант.
0
пофигист широкого профиля
4757 / 3194 / 860
Регистрация: 15.07.2013
Сообщений: 18,491
23.09.2017, 02:05 7
Да нет тут никакого варианта. Средствами SQL можно только получить список событий прохода сотрудника через точки прохода за некий период времени. А дальше только проход по списку с анализом соответствия времени входа/выхода с разрешенным графиком.
0
 Аватар для krapotkin
5873 / 4601 / 1448
Регистрация: 14.04.2014
Сообщений: 20,415
Записей в блоге: 20
23.09.2017, 09:56 8
я не знаю, как выглядит таблица окон, но видится, что вполне можно сджойнить две таблицы, чтобы получить поле "в окне"
0
23.09.2017, 09:56
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2017, 09:56
Помогаю со студенческими работами здесь

Как реализовать табель учёта рабочего времени?
есть ли у кого рабочая программа табель учёта рабочего времени в DELPHI с БД

Как можно реализовать Табель учета рабочего времени?
Подскажите как с помощью DBGrid реализовать табель рабочего времени. Проблема в том что одному...

Учет рабочего времени
Уважаемые гуру Access, подскажите как создать учет рабочего времени сотрудников охраны, есть...

Учет рабочего времени
Подскажите, кто-нибудь сталкивался с программами учета рабочего времени? так-то идея логичная, под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru