Автор Тема: Отбор первых событий  (Прочитано 5005 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Romeo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Отбор первых событий
« : 03 Августа 2006, 16:25:12 »
У меня вот какая проблема: человек приходит на работу и отмечается карточкой программа записывает в какое время он отметился
на "Вход" (такая же ситуация и с "Выходом"). Потом для просмотра опоздавших я создал запрос в котором
в список попадают те у кого время "Входа" больше времени прибытия на работу (время прибытия на работу задается для всех индивидуально при приеме на работу)
Все было нормально до тех пор, пока не произошло следующее: работник пришел на работу в 8:50 потом ушел тоже отметился на "Выходе".
когда пришел отметился на входе в 14:00. И теперь он попадает в спиок опоздавших.
Как можно обойти эту ситуацию. В запросе может можно какнибудь указать чтобы учитывались только первые отметки работника.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Отбор первых событий
« Ответ #1 : 03 Августа 2006, 17:45:06 »
Цитировать
Romeo:
Все было нормально до тех пор, пока не произошло следующее: работник пришел на работу в 8:50 потом ушел тоже отметился на "Выходе". когда пришел отметился на входе в 14:00.


Т.е он пришёл в 8.50 отметился ушёл допустим в 13.00 отметился, вернулся в 14.00 отметился, правильно я понял?

Оффлайн Romeo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Отбор первых событий
« Ответ #2 : 03 Августа 2006, 18:00:02 »
Да именно так но нужно уточничть что на вход и выход события занояться в одно поле просто с разными именами (2 считывающих устройства на вход и выход. В зависимости от того где  карточкой проводишь такое событие и заноситься в таблицу)

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Отбор первых событий
« Ответ #3 : 07 Августа 2006, 10:00:19 »
Цитировать
Romeo:
В запросе может можно какнибудь указать чтобы учитывались только первые отметки работника.



Ну а если выбрать минимальное время, если я конечно тебя правильно понял.

т.е примерно так SELECT MIN(time_in) AS first_time FROM tabl_bla  WHERE date = \'2006-08-07\';

Это и будет время первой отметки.

Оффлайн Romeo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Отбор первых событий
« Ответ #4 : 07 Августа 2006, 10:07:45 »
Так можно было бы сделать, если бы нам нужно было проводить выборку каждый день, но нам нужно устанавливать интервал выбора допустим 01.08.06 до 10.08.06. В таком случае он будет выбирать минимальное время токо за один день.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Отбор первых событий
« Ответ #5 : 07 Августа 2006, 12:07:33 »
Ну а так, ты не получишь то что хочешь?

SELECT MIN(time_in) AS first_time FROM tabl_bla WHERE date >= \'2006-08-01\' AND date <= \'2006-08-07\';

Оффлайн Romeo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Отбор первых событий
« Ответ #6 : 07 Августа 2006, 12:15:23 »
Да точно, огромное спасибо.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28