На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Не могу отсечть не корректно введенную информацию.
    Здравствуйте! Нужно разработать программу учета рабочего времени. Как подсчитать общее рабочее время? Существует два устройства один на вход и один на выход. Рабочий может как заходить на завод так и выходить. Как быть если рабочий два раза приложил пропуск на вход, или пришел, но приложил на выход.
    Прикреплённый файлПрикреплённый файл________________.png (19,98 Кбайт, скачиваний: 377)

    Добавлено
    Мне нужно сформировать запрос.
    Сообщение отредактировано: JoeUser -
      Цитата Dmitriy78781 @
      Как быть если рабочий два раза приложил пропуск на вход, или пришел, но приложил на выход.

      Выписать звездюлей. А если серьёзно - создать документ, устанавливающий регламент учёта рабочего времени (включая порядок "прикладывания пропуска"), утвердить приказом руководителя и ознакомить всех под подпись. После чего спокойно удалять из БД все первые входы в паре последовательных входов, и соответственно все вторые выходы. А по остатку считать работчее время и формировать "ведомость на звездюли".

      Удаление делается приблизительно так:

      ExpandedWrap disabled
        DELETE t1.* -- удаление первых входов
        FROM table t1, table t2
        WHERE t1.dt < t2.dt
        AND NOT EXISTS (SELECT 1
                        FROM table t3
                        WHERE t3.dt BETWEEN t1.dt AND t2.dt
                       )


      Аналогично для выходов.
        Цитата Dmitriy78781 @
        Как быть если рабочий два раза приложил пропуск на вход

        Установить лимит времени (например минута) в котором игнорировать второе приложение пропуска.

        Цитата Dmitriy78781 @
        или пришел, но приложил на выход.

        Установить турникет, и не пропускать без пропуска ...... или не выпускать если нет входа :lol:
        Сообщение отредактировано: Bas -
          Цитата Марсианин @
          Dmitriy78781
          А как вы решили вопрос, когда по одному пропуску прошло 2 человека? Ну например несу я коробку, руки заняты,мне коллега открыл турникет своим пропуском. И что будет с учетом времени если сотрудник зашел по чужому пропуску а вышел по своему?

          интересная мысль
          user posted imageuser posted image
            Цитата Akina @
            А если серьёзно - создать документ, устанавливающий регламент учёта рабочего времени (включая порядок "прикладывания пропуска"), утвердить приказом руководителя и ознакомить всех под подпись. После чего спокойно удалять из БД все первые входы в паре последовательных входов, и соответственно все вторые выходы. А по остатку считать работчее время и формировать "ведомость на звездюли".

            Мы почти что так решили, но проще:
            создали документ, устанавливающий регламент учёта рабочего времени.
            В селекте отсекали некорректные данные, брали только первые входы и последние выходы.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0401 ]   [ 17 queries used ]   [ Generated: 28.03.24, 18:45 GMT ]