Forum Webscript.Ru
Общие => Базы данных => Тема начата: Romeo от 03 Августа 2006, 16:25:12
-
У меня вот какая проблема: человек приходит на работу и отмечается карточкой программа записывает в какое время он отметился
на "Вход" (такая же ситуация и с "Выходом"). Потом для просмотра опоздавших я создал запрос в котором
в список попадают те у кого время "Входа" больше времени прибытия на работу (время прибытия на работу задается для всех индивидуально при приеме на работу)
Все было нормально до тех пор, пока не произошло следующее: работник пришел на работу в 8:50 потом ушел тоже отметился на "Выходе".
когда пришел отметился на входе в 14:00. И теперь он попадает в спиок опоздавших.
Как можно обойти эту ситуацию. В запросе может можно какнибудь указать чтобы учитывались только первые отметки работника.
-
Romeo:
Все было нормально до тех пор, пока не произошло следующее: работник пришел на работу в 8:50 потом ушел тоже отметился на "Выходе". когда пришел отметился на входе в 14:00.
Т.е он пришёл в 8.50 отметился ушёл допустим в 13.00 отметился, вернулся в 14.00 отметился, правильно я понял?
-
Да именно так но нужно уточничть что на вход и выход события занояться в одно поле просто с разными именами (2 считывающих устройства на вход и выход. В зависимости от того где карточкой проводишь такое событие и заноситься в таблицу)
-
Romeo:
В запросе может можно какнибудь указать чтобы учитывались только первые отметки работника.
Ну а если выбрать минимальное время, если я конечно тебя правильно понял.
т.е примерно так SELECT MIN(time_in) AS first_time FROM tabl_bla WHERE date = \'2006-08-07\';
Это и будет время первой отметки.
-
Так можно было бы сделать, если бы нам нужно было проводить выборку каждый день, но нам нужно устанавливать интервал выбора допустим 01.08.06 до 10.08.06. В таком случае он будет выбирать минимальное время токо за один день.
-
Ну а так, ты не получишь то что хочешь?
SELECT MIN(time_in) AS first_time FROM tabl_bla WHERE date >= \'2006-08-01\' AND date <= \'2006-08-07\';
-
Да точно, огромное спасибо.