|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
Задача такова, выбрать опоздавших за конкретный день, при условии, что человек может войти до времени опоздания, выйти и зайти уже во время опоздания (тогда опозданием не считается), войти и выйти человек может на любой из нескольких проходных, человек может зайти два раза во время опоздания (нужно исключить дубликаты). Права к базе данных только на чтение, дата хранится в int, потому такие танцы с бубном (если есть решения получше - милости прошу, но напоминаю, что права только на чтение). Вот что получилось у меня накидать: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Проблема двойных опозданий одного и того же человека решена с помощью distinct, но не могу понять, как решить проблему в один запрос, если человек отметился до времени опоздания, а потом вышел и вошёл во время опоздания. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:02 |
|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
Garred, distinct - в сад ! Пронумеруй через Код: sql 1.
выборку за день, и выбери те записи, у которых RN=1 Вот среди этих записей, по условию between time '$time_start' and time '$time_end', и нужно искать "опоздавших" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:07 |
|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
court, благодарю за ответ, у меня нету базы данных под рукой проверить, это примерно так должно выглядеть? SELECT identity_id as id, to_timestamp(event_date) at time zone 'UTC' as Дата, fio as ФИО, department as Отделение, rank as Должность, event_source as Место FROM public.rpt_trx where (event_source = 'проходная вход №1' or event_source = 'проходная вход №2' or event_source = 'проходная вход №3') and event_type='Разрешение на вход' and (cast((to_timestamp(event_date) at time zone 'UTC') as time) between time '$time_start' and time '$time_end') and (cast((to_timestamp(event_date) at time zone 'UTC') as date) = date '$date') ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:16 |
|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
Чёрт, не туда нажал, я ещё не всё xD ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:16 |
|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:22 |
|
Выборки опоздавших
|
|||
---|---|---|---|
#18+
court, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 19:24 |
|
|
start [/forum/topic.php?fid=53&fpage=46&tid=1995425]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 142ms |
0 / 0 |