|
Модераторы: Akella |
|
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
Добрый день!
Подскажите пожалуйста, как в IBExpert сделать процедуру в базе, которая возвращает среднее значение работы сотрудника за час? Имеется таблица вида: USER_ID T_START T_STOP Сотрудник 1 26.03.2018 11:24:11 26.03.2018 11:27:48 Сотрудник 1 26.03.2018 11:27:53 26.03.2018 11:31:54 Сотрудник 1 26.03.2018 11:31:54 26.03.2018 11:42:50 Сотрудник 1 26.03.2018 12:59:00 26.03.2018 13:24:00 Где T_START - начало работы, T_STOP соответственно конец. В итоге нужно получить таблицу следующего вида: USER_ID 10:00-11:00 11:00-12:00 12:00-13:00 13:00-14:00 и так до 18:00 Сотрудник1 0 ~18/60 1/60 24/60 -------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
используй группировку и AVG
|
|||
|
||||
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
Гугл тоже так говорит Нашел 1 пример, но там немного другая задача - запутался еще больше. Я понимаю, что надо сидеть и читать мануалы и разбираться, но может есть какое-то готовое решение? -------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Поспрошай тех студентов, кто сдавал это задание в прошлом году... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
Найти бы еще этих студентов
вот этот код не работает, нули выдает -------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
Akella, мне нужно сделать процедуру в IBExpert, на входе дата и ид сотрудника, на выходе почасовая статистика
-------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Сперва составь SQL запрос, а потом уже обернёшь его в процедуру.
Добавлено через 1 минуту и 55 секунд я не пойму пока, зачем тебе и зачем тебе тебе же надо вычитать? т.е. математические операции с датами http://firebirdsql.su/doku.php?id=matemati...peracii_s_datoj |
|||
|
||||
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
У меня получилось пока только так
но считает не совсем верно. Мне нужно считать время в час, даже если Time_begin было с 8 утра, т.е. сотрудники ходят на перерывы - соответственно меняют статус, а в данном случае запрос выбирает значения Time_begin и Time_end в пределах одного часа, если нет совпадений, то выводит null... Это сообщение отредактировал(а) neweraser - 28.3.2018, 12:42 -------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
neweraser |
|
|||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
Нет никаких идей? Неделю бьюсь уже
-------------------- Кто ищет, тот всегда найдет. |
|||
|
||||
neweraser |
|
||||||||
Опытный Профиль Группа: Участник Сообщений: 598 Регистрация: 17.2.2008 Репутация: нет Всего: 6 |
На текущий момент имею такое решение:
Все считает, но за текущие сутки, а мне нужно с 8 утра выбранного дня (входная переменная :Д) до 8 утра следующего дня. Условие WHERE прописал, но все равно как надо не работает. Нужно вычитать не часы TIME, а даты TIMESTAMP. Попробовал заменить код
на
Не запускается процедура, выдает ошибку:
Странно, я ж не пытаюсь разделить строку. Это сообщение отредактировал(а) neweraser - 30.3.2018, 08:49 -------------------- Кто ищет, тот всегда найдет. |
||||||||
|
|||||||||
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |