![]() |
![]() |
![]() |
|
Вывести среднее времени по группировкам в запросе | ☑ | ||
---|---|---|---|---|
0
ЖанЖак
03.06.15
✎
14:09
|
Попробую объяснить в чем проблема.
Есть запрос из внешнего источника, в котором я нахожу среднее время представленное в секундах ВЫБРАТЬ |dbo_groups_otdels.name_ как Филиал, |table_vsego.id_otdel как id_otdel, |table_main.ВСЕГО_УСЛУГ-ЕСТЬNULL(table1_2.prinyato,0)-ЕСТЬNULL(table3_4.vidano,0) КАК Консультации, |ЕСТЬNULL(table1_2.prinyato,0) КАК ПРИНЯТО, |ЕСТЬNULL(table3_4.vidano,0) КАК ВЫДАНО, |table_main.ВСЕГО_УСЛУГ КАК ВСЕГО, |table_vsego.ВСЕГО_ТАЛОНОВ как ВСЕГО_ТАЛОНОВ, |table_vsego.ВСЕГО_ТАЛОНОВ-table_main.ВСЕГО_УСЛУГ как НЕ_ОБСЛУЖЕНО, |ЕСТЬNULL(Таб_СрВрОж.СрВрОж,0) как Ожидание, |ЕСТЬNULL(Таб_СрВрОб.СрВрОб,0) как Обслуживание, |ЕСТЬNULL(Таб_МаксВр.МаксВр,0) как МаксОжидание, |ЕСТЬNULL(Таб_МаксОб.МаксОб,0) как МаксОбслуживание |ИЗ .................................................................. | ЛЕВОЕ СОЕДИНЕНИЕ (Выбрать dbo_history.id_otdel, ЕСТЬNULL(СРЕДНЕЕ(РАЗНОСТЬДАТ(dbo_history.date_ticket,dbo_history.date_beg_1,СЕКУНДА)),0) как СрВрОж ИЗ ВнешнийИсточникДанных.Проба.Таблица.dbo_history КАК dbo_history Где dbo_history.id_otdel В(&otdel) И (НАЧАЛОПЕРИОДА(dbo_history.date_ticket,День) МЕЖДУ &ДатаНачала И &ДатаОкончания) И НАЧАЛОПЕРИОДА(dbo_history.date_ticket,День)=НАЧАЛОПЕРИОДА(dbo_history.date_end,День) И НАЧАЛОПЕРИОДА(dbo_history.date_ticket,День) ЕСТЬ НЕ NULL СГРУППИРОВАТЬ ПО dbo_history.id_otdel) как Таб_СрВрОж ПО table_main.id_otdel=Таб_СрВрОж.id_otdel ЛЕВОЕ СОЕДИНЕНИЕ ........................................................ Затем его помещаю во временную таблицу и соединяю в новом запросе к базе ВТДанные.ФИЛИАЛ как ФИЛИАЛ, Отделы.КраткоеНазвание как КраткоеНазвание, СУММА(ВТДанные.КОНСУЛЬТАЦИИ) как Консультации, СУММА(ВТДанные.ПРИНЯТО) как Принято, СУММА(ВТДанные.ВЫДАНО) как Выдано, СУММА(ВТДанные.ВСЕГО) как Всего, СУММА(ВТДанные.ВСЕГО_ТАЛОНОВ) как Всего_Талонов //|ДобавитьКДате(ДАТАВРЕМЯ(1,1,1),Секунда,ВТДанные.Ожидание) как Ожидание, //|ДобавитьКДате(ДАТАВРЕМЯ(1,1,1),Секунда,ВТДанные.Обслуживание) как Обслуживание, //|ДобавитьКДате(ДАТАВРЕМЯ(1,1,1),Секунда,ВТДанные.МаксОжидание) как МаксОжидание, //|ДобавитьКДате(ДАТАВРЕМЯ(1,1,1),Секунда,ВТДанные.МаксОбслуживание) как МаксОбслуживание ИЗ ВТДанные как ВТДанные Левое СОЕДИНЕНИЕ Справочник.Отделы как Отделы ПО ВТДанные.id_otdel=Отделы.ИДСкат Сгруппировать по ФИЛИАЛ, КраткоеНазвание ИТОГИ //|Ожидание, //|Обслуживание, //|МаксОжидание, //|МаксОбслуживание, СУММА(Всего), СУММА(ВСЕГО_ТАЛОНОВ), СУММА(ПРИНЯТО), СУММА(КОНСУЛЬТАЦИИ), СУММА(ВЫДАНО) ПО ФИЛИАЛ, КраткоеНазвание"; Проблема в том, что теперь нужно в отчете получить среднее время по группировкам, представленном в формате чч:мм:сс Т.е. среднее время в группировке КраткоеНазвание я получаю, а как получить среднее значение по группировке ФИЛИАЛ и именно в формате чч:мм:сс. Возможно кто-то посоветует как это сделать. |
|||
1
Fragster
гуру
03.06.15
✎
14:17
|
на СКД макет поля нарисуй, в него запихай вычисленные дни, часы, минуты, секунды
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |