Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Существует система СКД, которое контролирует доступ сотрудников на предприятие и соответственно время доступа. Так же в программе СКД предусмотрен табельный учет. Но к сожалению система фиксирует лишь время входа сотрудника на предприятие и время выхода, а суммарное время не учитывается. Сотрудников около 4 тыс. поэтому процесс учета суммарного времени необходимо автоматизировать, считать все руками задача для не слабонервных. Опыт программирования полностью отсутствует, так что полагаюсь лишь на вашу помощь. Пример отчета в приложении. Как я понимаю надо будет вычесть две смежные ячейки и получить время потом следующую пару и т.п., а потом их сложить и получить итоговое время для одного человека и т.д. для всех остальных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 13:44 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
artfulbag, Такие вещи наиболее просто делаются SQL-запросами, так что сначала вопрос - что, исходные данные возможно получить только в экселе или все же есть вариант сделать запрос непосредственно к БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 13:54 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.Proartfulbag, Такие вещи наиболее просто делаются SQL-запросами, так что сначала вопрос - что, исходные данные возможно получить только в экселе или все же есть вариант сделать запрос непосредственно к БД? К сожаления точно не могу сказать поступают ли данные об отчетах с этой системы в SQL, более вероятно что да, они лишь конвертируются в xls файл при выгрузке, так как вся база СКД вращается на MSSQL, но к сожаления информации по базе SQL нет, т.е. нет информации где расположены отчеты в каких таблицы, плюс так же специалистов работающих с SQL к сожалению нет, соответственно этот более лучший вариант отпадает. Поэтому рассматривается вариант работы уже с конечным xls файлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:02 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
artfulbag, какой день в табеле входвыход31 января 23.45 1 февр7.00 похоже февраль31 янв 20.00 1 февр7.00 похоже январь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:04 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
artfulbag, Ну, в принципе, можно и к экселевскому файлу SQL-запрос сделать.... Только есть нюанс, что и как считать, если человек зашел в один день, а вышел в другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:11 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
ПЕНСИОНЕРКАartfulbag, какой день в табеле входвыход31 января 23.45 1 февр7.00 похоже февраль31 янв 20.00 1 февр7.00 похоже январь Система в табеле выгружает информацию за сутки, т.е. 31 января 23:45 - 31 января, а 1 февраля 7:00 - это 1 февраля, поэтому скорее всего надо считать вход/выход. То есть если вход был зафиксирован 31 января, а выход 1 февраля, то отнести итоговое время надо к 31 январю. Но как это сделать не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:12 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
artfulbagНо как это сделать не представляю. Предполагается альтруизм или есть бюджет? И сроки какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:28 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProartfulbagНо как это сделать не представляю. Предполагается альтруизм или есть бюджет? И сроки какие? Естественно сроки кратчайшие, до 5-ого октября. Бюджета нет. Мне вменили :) решить вопрос как хочешь. Так что альтруизм, хотите помогайте, хотите нет. Я в свою очередь ратую за помощь, но конечное решение за вами ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:34 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
видимо вам придётся сначала начать с нормализации входных данных. а именно, приведения строк к формату DATETIME, а уже потом можете накручивать sql-запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:38 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Необязательно, можно склеить и в запросе, и даже лучше, так как понадобится группировка по дате. Нормализация тут будет заключаться в группировке по номеру пропуска и дальнейший джойн обратно к первой попавшейся фамилии под этот пропуск.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:42 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProНеобязательно, можно склеить и в запросе, и даже лучше, так как понадобится группировка по дате. Нормализация тут будет заключаться в группировке по номеру пропуска и дальнейший джойн обратно к первой попавшейся фамилии под этот пропуск.... на sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:45 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneна sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп Я что-то не понял. У меня файл нормально открылся, ячейка имеет формат даты, у вас с Пенсионеркой какие-то глюки с файлом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:47 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneна sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп Я что-то не понял. У меня файл нормально открылся, ячейка имеет формат даты, у вас с Пенсионеркой какие-то глюки с файлом? я не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:51 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneя не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит. не, это сочинения Пенсионерки, файл выглядит абсолютно по-другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 14:53 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneя не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит. не, это сочинения Пенсионерки, файл выглядит абсолютно по-другому. ну тогда простым sql-запросом DATEDIFF(hour,дата выхода, дата входа) или в минутах, если надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 15:02 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneну тогда простым sql-запросом DATEDIFF(hour,дата выхода, дата входа) или в минутах, если надо Там есть две загвоздки а) входов и выходов в один день может быть несколько б) может быть вход без выхода и выход без входа (то есть нужен псевдовход в 00:00 и псевдовыход в 23:59:59) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:17 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
какая разница пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:19 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneкакая разница пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать я разве с этим спорю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:21 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneкакая разница пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать Ты просто не понял, видимо, раз файла не видишь. Время входа и время выхода там в плоской таблице, то есть они не сопоставлены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:24 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneкакая разница пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать Ты просто не понял, видимо, раз файла не видишь. Время входа и время выхода там в плоской таблице, то есть они не сопоставлены ясно, ну простор тогда для деятельности у ТС. пусть в базу всё перегонит и начинает анализировать на выборках, что и как и куда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:25 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Дата СобытияВремя событияФамилияИмяНомер картыОбластьИтого01.10.20107:40ПетровПетр12345ВходСдесь должна быть сумма времени проведенного на заводе; в этом случае она равна 9:05 минут01.10.201012:00ПетровПетр12345Выход01.10.201012:55ПетровПетр12345Вход01.10.201017:10ПетровПетр12345Выход01.10.20107:58ИвановИван123ВходТоже сумма01.10.201017:02ИвановИван123Выход30.09.20107:30СидоровСемен3564ВходТоже сумма времени30.09.201010:10СидоровСемен3564Выход30.09.201011:20СидоровСемен3564Вход30.09.201012:20СидоровСемен3564Выход30.09.201013:05СидоровСемен3564Вход30.09.201014:20СидоровСемен3564Выход30.09.201015:00СидоровСемен3564Вход30.09.201018:00СидоровСемен3564Выход ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:25 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
групировка по ФИО + вход = одна вьюшка с занесением в промежуточную таблицу времени входа аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:28 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Konst_Oneгрупировка по ФИО по номеру карты :) Konst_One+ вход = одна вьюшка с занесением в промежуточную таблицу времени входа аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал ну это-то все можно и подзапросами. Тут вопрос, как лучше сопоставить время входа и выхода (между которыми считать интервал) на чистом SQL, не прибегая к сканированию таблицы.... ...можно, к примеру, с помощью временной таблицы и идентити (или автонумерацией в запросе), и связывать с предыдущим, ну тут возникает такой момент, как "сотрудник выпал из окна", то есть два раза вошел, допустим. То есть тут еще должен быть фильтр по таким данным... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:32 |
|
||
|
Табельный учет
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneгрупировка по ФИО по номеру карты :) Konst_One+ вход = одна вьюшка с занесением в промежуточную таблицу времени входа аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал ну это-то все можно и подзапросами. Тут вопрос, как лучше сопоставить время входа и выхода (между которыми считать интервал) на чистом SQL, не прибегая к сканированию таблицы.... ...можно, к примеру, с помощью временной таблицы и идентити (или автонумерацией в запросе), и связывать с предыдущим, ну тут возникает такой момент, как "сотрудник выпал из окна", то есть два раза вошел, допустим. То есть тут еще должен быть фильтр по таким данным... я бы сделал через промежуточную таблицу PS по номеру карты конечно группировка, если оно уникально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36877026&tid=2159367]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 157ms |

| 0 / 0 |
