Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

учет рабочего времени [MSSQL]


vantage10 ©   (2004-04-22 13:52:00) 

Никто не пробовал организовать учет рабочего времени на SQL запросе?


vantage10   (2004-04-22 18:03:00) [1]

В приципе разобрался, т.е. требовалось примерно это:
SELECT
CAST(SUM(CASE AcNum WHEN  1 THEN -CAST(RegTime AS FLOAT) ELSE CAST(RegTime AS FLOAT) END) AS DateTime)
FROM Table2

Только если в таблице подряд два входа или выхода, или непарные значения, то результат не верен. Как привести таблицу к нормальному виду?


Petr V. Abramov   (2004-04-22 17:50:00) [2]

> Курдль ©   (22.04.04 15:55) [16]
> и лаем караульных собак
 Лаем караульных бабок :)

 Непосредственно учет времени - это 2 таблицы - "двери" и "кто-вошел-вышел-дверь-во-сколько". А вот для постоения выводов из этой информации (во-время - не во-время, по делу или пописать, можно ли писать с 2 до 5 и т.д.) таблиц можно нагородить и 70, и 7, и 107. Зависит от инициативности HR и шибанутости и руководства.


Курдль   (2004-04-22 15:55:00) [3]


> Ega23 ©

Ок! С датчиками и лаем караульных собак - мэйбыть и 70 :)))


Ega23   (2004-04-22 15:51:00) [4]

История проходов - это как данный субъект (группа субъектов) ХОДИЛИ через точки доступа, точнее какие события возбуждали в ТД.

Графики проходов - фактически это расписания доступа. Допустим, группе лиц назначен круглосуточный проход на территорию объекта в любой день. Это один график. Но большинство народа ходит Понедельник - Пятница с 9:00 до 18:30. В выходные и праздники - сидят дома. Это второй график прохода.
Есть ещё дежурные смены, например 2 дня через 3. Они зациклены на 5 дней независимо от выходных и праздников.
И т.п.
Как показывает практика, реально на объектах используют не более 10-ти графиков прохода, но, теоретически, каждому сотруднику можно составить индивидуальный график прохода.


Anatoly Podgoretsky   (2004-04-22 15:47:00) [5]

vantage10   (22.04.04 15:32) [7]
Это вообще то не учет рабочего времени, а учет проходов через чтото. Для этой цели структура достаточная. А для ответа на вопрос недостаточно информации, смотри указанную ветку.


vantage10   (2004-04-22 15:47:00) [6]

Работать нужно только с одной таблицой


Курдль   (2004-04-22 15:44:00) [7]

А чем Графики проходовотличаются от История проходов
?


Ega23   (2004-04-22 15:41:00) [8]

Для Ega23. В 3 таблицы можно уложиться. 1-ая пользователи, 2-двери, 3-уровни доступа.

Можно. Нормализация 1-го уровня получится.

1. Таблица электронных пропусков.
2. Графики проходов.
3. История проходов
4. Куча справочных таблиц (одних типов блокировок существует 10 штук)
5. Типы датчиков, устройств, турникетов и т.п.

Так что хошь верь, а хошь не верь.


Johnmen   (2004-04-22 15:38:00) [9]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1081830855&n=1


Курдль   (2004-04-22 15:36:00) [10]

Вы определитесь сначала с сущностями модели.
Или, проще говоря, с таблицами БД.
Как минимум 2 уже видно - "Перцы" и "Приходы" (ха-ха).
Если одобряете - бум дальше работать в нужном направлении...


vantage10   (2004-04-22 15:35:00) [11]

Для Ega23. В 3 таблицы можно уложиться. 1-ая пользователи, 2-двери, 3-уровни доступа.


vantage10   (2004-04-22 15:32:00) [12]

Суть в следующем:
Есть данные по пользователям, во сколько пришел и во сколько пришел. Примерно так:
Person | Date      | In_Out | Time |
Петров | 15.04.2004| In     | 08:00|
Иванов | 15.04.2004| In     | 08:15|
Петров | 15.04.2004| Out    | 08:40|
Петров | 15.04.2004| In     | 09:10|
Петров | 15.04.2004| Out    | 17:00|
Иванов | 15.04.2004| Out    | 17:15|

И так за месяц, и хотелось это сделать в одно запросе с подзапросами на каждого пользователя и на каждый день. Только не знаю как. Разница времени между входом и выходом суммируется, т.е. сколько времени он находился в определенном месте.


Курдль   (2004-04-22 15:31:00) [13]


> это около 70-ти разных таблиц

НЕ ВЕРЮ! (с) Станиславский.


Ega23   (2004-04-22 15:27:00) [14]

Если в двух словах, то это около 70-ти разных таблиц. Система управления доступом.


Алхимик   (2004-04-22 15:22:00) [15]

учет рабочего времени
Задача не такая уж тривиальная как кажется на первый взгляд.
Это Вам не просто "время ухода" - "время прихода" = "время работы".
Это учёт всевозможных командировок, отпусков и т.д. Работа сотрудников по персональным планам и графикам, туева хуча отчетов о нарушении трудовой дисциплины, формирование табеля по ГОСТам и многое другое.


Курдль   (2004-04-22 14:03:00) [16]

Здесь было что-то похожее:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1082543239&n=1


clickmaker   (2004-04-22 13:59:00) [17]

Утро
insert into WorkTime(Worker_ID, BeginTime) values(@Worker_ID, getdate())

Вечер
update WorkTime set EndTime = getdate()
where Worker_ID = @Worker_ID

Учет
select datediff(hour, BeginTime, EndTime) as WorkTimeInHours
from WorkTime where Worker_ID = @Worker_ID


Соловьев   (2004-04-22 13:53:00) [18]


> учет рабочего времени на SQL запросе?

это как?


Наверх

Титульная страница Поиск, карта сайта Написать письмо