|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Доброго дня! Возникла такая задача. Есть таблица, выгруженная из БД СКУД, в которой содержатся данные о приходе и уходе сотрудников с работы. Загвоздка заключается в том, что сведения о времени находятся в одном столбце. Формат таблицы примерно такой: Имя ДатаВремяИванов13.11.2016 08:45Иванов13.11.2016 18:12Петров13.11.2016 08:53 Петров13.11.2016 19:03 Иванов14.11.2016 08:56Иванов14.11.2016 18:01Петров14.11.2016 09:00Петров14.11.2016 18:03 Задача сделать отчет за месяц, где будут столбцы: ИмяВремяПриходаВремяУходаИванов13.11.2016 08:4513.11.2016 18:12Петров13.11.2016 08:5313.11.2016 19:03 Иванов14.11.2016 08:5614.11.2016 18:01Петров14.11.2016 09:0014.11.2016 18:03 Сижу и ломаю голову каков должен быть запрос. Приходит на ум использование max и min, но как сделать выборку за период времени чтобы разделить приход и уход по дням? Какими-то подзапросами надо наверняка это решать? Но как? Опыта работы с датами не особо.... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 12:30 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Psylosopher, Идея такая: сделать 2 запроса с группировкой по Имени и дате (из ДатаВремя выделить дату и время) на мах и мин и объеденить их Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Как-то так. Написал без проверки (негде), как иллюстрация к идее ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 13:00 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Группировка по Имя и DataValue([ДатаВремя]) , ну и max и min для ДатаВремя, или для TimeValue([ДатаВремя]). или TimeValue применить к результатам max и min. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 13:03 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
PsylosopherЕсть таблица, выгруженная из БД СКУД, в которой содержатся данные о приходе и уходе сотрудников с работы. Загвоздка заключается в том, что сведения о времени находятся в одном столбце.Значит, халтурно выгружено из СКУД. Потому как ТАМ обязаны быть сведения о том, вход или выход. Надо просто выгружать и их тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 13:35 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Akinaхалтурно выгружено из СКУД Скорее СКУД криво поставлена - используется один датчик на вход и выход. Вообще с этими данными много нюансов, которые сложно учесть в одном запросе: - человек выходил, опять зашел и еще на месте - нужно проверять на четность записей. - отсутствует одна из записей (забыл, не сработало, прошел следом за другим) - пришел вечером, ушел после 12 и т.п. Так что таблица будет довольно-таки условная, скорее всего, с ошибками. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 13:41 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Rivkin Dmitry, Анатолий ( Киев ), спасибо большое! Буду пробовать! Akina Я не настолько глуп, чтобы ещё один столбец не суметь выгрузить, если бы он там был, чтобы потом так мучиться. Есть просто файл протокола событий, в том числе ненужных, которых я уже отфильтровал. Название события, дата и время. MrShin Единственный датчик - не проблема. Нужно только пришёл/ушел. Количество выходов и входов никому считать не интересно. А для прихода-ухода соответствующие отметки есть. Для того и нужен SQL. Всё это предусмотрено его гибкостью решается на 1-2-3. Просто надо знать как. Вот, Rivkin Dmitry, и Анатолий определенно знают. И спасибо им! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 14:38 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Psylosopher Название события , дата и время.Приход-уход? вот его и надо выгружать, и на него ориентироваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 15:49 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Akina, название события: иванов. Вот и ориентируйтесь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 16:47 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Psylosopherназвание события: ивановВ первом посте это поле называлось "Имя"... что за СКУД-то такая? Попробуй Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 16:57 |
|
Выбор записей по времени за период
|
|||
---|---|---|---|
#18+
Ааа, это же ж Access... тогда GROUP BY format([ДатаВремя], "yyyymmdd") или типа того. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 17:00 |
|
|
start [/forum/topic.php?fid=45&msg=39347005&tid=1612886]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 370ms |
total: | 519ms |
0 / 0 |