Имя: Пароль:
1C
 
Вывести среднее времени по группировкам в запросе
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
на СКД макет поля нарисуй, в него запихай вычисленные дни, часы, минуты, секунды