<?xml version="1.0" encoding="utf-16"?>
<ReportFile Version="100901">
  <Report>
    <Id>90a7916f-417d-452f-a17e-0bbf19ef496a</Id>
    <Name>_ Oktell_New: Входящие вызовы по задачам в разрезе интервалов</Name>
    <GroupName>_Интервальные отчеты</GroupName>
    <Type>1</Type>
    <ViewType>8</ViewType>
    <ViewTag>0</ViewTag>
    <Description>_Отчет отображает информацию о входящих вызовах в разрезе временных интервалов:  5, 15, 30  минут; час; день; неделя; месяц; год.
Отчет анализирует все состояния конкретной цепочки коммутаций и выдает ровно одно конечное состояние. Таким образом один вызов будет одной единицей в отчете.

Описание полей: 
- Всего - суммарное кол-во цепочек коммутаций (вызова), только для состоявшихся коммутаций (IdChain IS NOT NULL)
- Обслужено - вызовы, в которых было хотя бы одно успешное соединение с оператором в цепочке
- Переведено - вызовы, в цепочках которых было переключение на другого оператора или просто пользователя системы и/или было переключение на внешнюю линию (линии начинающиеся с цифр 11,12,13,14)
- Внешний перевод - вызовы, входящие в состав "Переведено", в которых было переключение на внешнюю линию (линии начинающиеся с цифр 11,12,13,14)
- Не дождался в очереди - вызовы, результат которых = "Абонент прервал ожидание в очереди" (статус 13)
- Потеряно системой - вызовы, результат которых среди:
    *"Превышено число подключений" (статус 21)
    *"Вызов осуществляется вне расписания задачи" (статус 22)
    *"Абонент попал в очередь задачи и находился в ожидании более установленного времени" (статус 25)
    *"Не найдено ни одного оператора или время ожидания ответа последнего оператора истекло" (статус 26)
    *"Все операторы заняты, и не включена очередь ожидания" (статус 26)
- Потеряно_график - вызовы, результат которых = "Вызов осуществляется во время, не установленное недельным графиком активности задачи"
- Пропущено оператором - вызовы, в которых не было ни одного успешного соединения с оператором и результат вызова = "Оператор не снял трубку"
- Обслужено, % - процент от всех вызовов
- Переведено, % - процент от числа обслуженных
- Внешний перевод, % - процент от числа всех Переведенных
- Не дождался в очереди, % - процент от всех вызовов
- Потеряно системой, % - процент от всех вызовов
- Потеряно_график, % - процент от всех вызовов
- Пропущено оператором, % - процент от всех вызовов
- Отвечено до X сек - кол-во вызовов, ожидание в очереди которых было менее чем Х секунд
- SL, % - процент ответивших до Х секунд от числа обслуженных

Статусы звонков описаны в статье:  wiki.oktell.ru/Описание_результатов_звонка_из_таблицы_A_Cube_CC_Cat_TaskResultTypes</Description>
    <TimerSec>0</TimerSec>
    <Details IsNull="0" Compiled="1">
      <sqltext>_SET @IdConstructorAxis = COALESCE(@IdConstructorAxis,4)

IF @IdConstructorAxis &lt; 5 
BEGIN
    SELECT DateStart [Дата],
                 interv [Интервал],
                 cnt [Всего],
                 cnt_connected [Обслужено],
                 (cnt - cnt_connected)  [Потеряно],
                 cnt_missed [Не дождался в очереди],
                 cnt_block_b [Потеряно системой],
                 cnt_not_between_work_time [Потеряно график],
                 cnt_operator_missed [Пропущено оператором],
                 round(cast(cnt_connected*100 as float)/cnt ,2) [Обслужено, %],
                 round(cast((cnt - cnt_connected )*100 as float)/cnt ,2) [Потеряно, %],
                 round(cast(cnt_missed*100 as float)/cnt ,2) [Не дождался в очереди, %],
                 round(cast(cnt_block_b*100 as float)/cnt ,2) [Потеряно системой, %],
                 round(cast(cnt_not_between_work_time*100 as float)/cnt ,2) [Потеряно график, %],
                 round(cast(cnt_operator_missed*100 as float)/cnt ,2) [Пропущено оператором, %],
                 cnt_passed_in [Внутренний перевод],
                 cnt_passed_out [Внешний перевод],
                 round(cast(cnt_passed_in*100 as float)/CASE WHEN cnt_connected = 0 THEN 1 ELSE cnt_connected END,2) [Внутренний перевод, %],
                 round(cast(cnt_passed_out*100 as float)/CASE WHEN cnt_connected = 0 THEN 1 ELSE cnt_connected END ,2) [Внешний перевод, %],
                 answen_before_X_second [Отвечено до X сек],
                 round(cast(answen_before_X_second *100 as float) / cnt ,2) [SL,%]
    FROM (
    SELECT DateStart,
                CASE @IdConstructorAxis
                        WHEN 1 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 5, cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 2 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 15, cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 3 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 30, cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 4 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(hh, 1, cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 5 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float)) as datetime), 10)
                        WHEN 6 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime), 10) + ' - ' + 
                                    cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), dateadd(dd, 7, cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime)), 10)
                        WHEN 7 THEN case datepart(mm, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime))
                                         when 1 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-01'
                                         when 2 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-02'
                                         when 3 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-03'
                                         when 4 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-04'
                                         when 5 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-05'
                                         when 6 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-06'
                                         when 7 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-07'
                                         when 8 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-08'
                                         when 9 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-09'
                                         when 10 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-10'
                                         when 11 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-11'
                                         when 12 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-12'
                                    end
                        WHEN 8 THEN cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar (4)) + '-01-01' as datetime)) as nvarchar(4))
                        ELSE NULL
                END [interv],
                COUNT(tt.IdCHAIN) cnt,
                SUM(have_res) + SUM(CASE WHEN have_operator = 1 AND cr1 = 1 AND missed = 0 AND block_b = 0 AND have_res = 0 AND operator_missed = 0 AND not_between_work_time =0 THEN 1 ELSE 0 END) cnt_connected,
                SUM(passed_in) cnt_passed_in,
                SUM(passed_out) cnt_passed_out,
                SUM(CASE WHEN have_res = 0 AND 
                              have_operator = 0 AND 
                              cr1 = 0 AND 
                              missed = 0 AND 
                              block_b = 0 AND 
                              operator_missed = 0 AND 
                              not_between_work_time=0
                         THEN 1 ELSE 0 END) + SUM(missed)  cnt_missed,
                SUM(block_b) + SUM(CASE WHEN have_operator = 0 AND cr1 = 1 AND missed = 0 AND block_b = 0 AND (have_res = 0 AND operator_missed = 0) AND (not_between_work_time =0) THEN 1 ELSE 0 END) cnt_block_b,
                SUM(not_between_work_time) cnt_not_between_work_time,
                SUM(CASE WHEN have_res = 0 AND 
                              have_operator = 1 AND 
                              cr1 = 0 AND 
                              missed = 0 AND 
                              block_b = 0 AND 
                              operator_missed = 1 AND 
                              not_between_work_time=0
                         THEN 1 ELSE 0 END) cnt_operator_missed,
                SUM(CASE WHEN p_LenQueue &lt;= CASE WHEN @secX=0 THEN p_LenQueue ELSE @secX END AND (have_res = 1 OR (have_operator = 1 AND cr1 = 1 AND have_res = 0)) THEN 1 ELSE 0 END) answen_before_X_second
        FROM (
        SELECT IdCHAIN,
               DateStart,
               CASE WHEN SUM(CASE WHEN CallResult IN (5,18) AND IdOperator != 'ab000000-0000-0000-0000-000000000000' THEN 1 
                                  ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END have_res,
               MIN(DateTimeStart) DateTimeStart,
               MAX(DateTimeStart) MAX_DateTimeStart,
               CASE WHEN SUM(CASE WHEN LEFT(BLineNum,2) NOT IN ('11','12','13','14') AND COALESCE(IdBUser,'ab000000-0000-0000-0000-000000000000') NOT IN ( 'ab000000-0000-0000-0000-000000000000','bf000000-0000-0000-0000-000000000000') AND  LenTime &gt; 0 THEN 1 ELSE 0 END ) &gt; 1 THEN 1 ELSE 0 END passed_in,
               CASE WHEN SUM(CASE WHEN LEFT(BLineNum,2) IN ('11','12','13','14') AND LenTime &gt; 0 THEN 1 ELSE 0 END ) &gt; 0 THEN 1 ELSE 0 END passed_out,
               CASE WHEN SUM(CASE WHEN COALESCE(IdOperator,'ab000000-0000-0000-0000-000000000000') != 'ab000000-0000-0000-0000-000000000000' THEN 1 ELSE 0 END ) &gt; 0 THEN 1 ELSE 0 END have_operator,
               CASE WHEN SUM(CASE WHEN CallResult IN (13) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END missed,
               CASE WHEN SUM(CASE WHEN CallResult IN (21,22,25,26,27) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END block_b,
               CASE WHEN SUM(CASE WHEN CallResult IN (23) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END not_between_work_time,
               CASE WHEN SUM(CASE WHEN CallResult IN (7) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END operator_missed,
               CASE WHEN SUM(CASE WHEN CallResult = 1 THEN 1 ELSE 0 END)  &gt; 0 THEN 1 ELSE 0 END cr1,
               MAX(LenQueue) p_LenQueue
        FROM  oktell_cc_temp..A_Cube_CC_EffortConnections c
        WHERE convert(varchar(20),DateTimeStart,102) &gt;= convert(varchar(20),@dt1,102)
            AND convert(varchar(20),DateTimeStart,102) &lt;= convert(varchar(20),@dt2,102)
            AND convert(varchar(20),DateTimeStart,108) &gt;= convert(varchar(20),@t1,108)
            AND convert(varchar(20),DateTimeStart,108) &lt;= convert(varchar(20),@t2,108)
            AND (NOT EXISTS(SELECT 1 FROM @task) OR EXISTS(SELECT 1 FROM @task sub_b WHERE sub_b.id = c.IdTask))
            AND IdCHAIN IS NOT NULL
            AND COALESCE(IsOutput,0) = 0
            GROUP BY IdCHAIN, DateStart
        ) as tt
       GROUP BY DateStart, CASE @IdConstructorAxis
                        WHEN 1 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 5, cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 2 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 15, cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 3 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 30, cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 4 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(hh, 1, cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 5 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float)) as datetime), 10)
                        WHEN 6 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime), 10) + ' - ' + 
                                    cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), dateadd(dd, 7, cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime)), 10)
                        WHEN 7 THEN case datepart(mm, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime))
                                         when 1 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-01'
                                         when 2 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-02'
                                         when 3 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-03'
                                         when 4 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-04'
                                         when 5 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-05'
                                         when 6 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-06'
                                         when 7 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-07'
                                         when 8 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-08'
                                         when 9 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-09'
                                         when 10 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-10'
                                         when 11 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-11'
                                         when 12 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-12'
                                    end
                        WHEN 8 THEN cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar (4)) + '-01-01' as datetime)) as nvarchar(4))
                        ELSE NULL
                END
    )     t
        Order by 1, 2
END 
ELSE 
BEGIN
        SELECT   interv [Интервал],
                 cnt [Всего],
                 cnt_connected [Обслужено],
                 (cnt - cnt_connected)  [Потеряно],
                 cnt_missed [Не дождался в очереди],
                 cnt_block_b [Потеряно системой],
                 cnt_not_between_work_time [Потеряно график],
                 cnt_operator_missed [Пропущено оператором],
                 round(cast(cnt_connected*100 as float)/cnt ,2) [Обслужено, %],
                 round(cast((cnt - cnt_connected )*100 as float)/cnt ,2) [Потеряно, %],
                 round(cast(cnt_missed*100 as float)/cnt ,2) [Не дождался в очереди, %],
                 round(cast(cnt_block_b*100 as float)/cnt ,2) [Потеряно системой, %],
                 round(cast(cnt_not_between_work_time*100 as float)/cnt ,2) [Потеряно график, %],
                 round(cast(cnt_operator_missed*100 as float)/cnt ,2) [Пропущено оператором, %],
                 cnt_passed_in [Внутренний перевод],
                 cnt_passed_out [Внешний перевод],
                 round(cast(cnt_passed_in*100 as float)/CASE WHEN cnt_connected = 0 THEN 1 ELSE cnt_connected END,2) [Внутренний перевод, %],
                 round(cast(cnt_passed_out*100 as float)/CASE WHEN cnt_connected = 0 THEN 1 ELSE cnt_connected END ,2) [Внешний перевод, %],
                 answen_before_X_second [Отвечено до X сек],
                 round(cast(answen_before_X_second *100 as float) / cnt ,2) [SL,%]
    FROM (
    SELECT      CASE @IdConstructorAxis
                        WHEN 1 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 5, cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 2 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 15, cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 3 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 30, cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 4 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(hh, 1, cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 5 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float)) as datetime), 10)
                        WHEN 6 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime), 10) + ' - ' + 
                                    cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), dateadd(dd, 7, cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime)), 10)
                        WHEN 7 THEN case datepart(mm, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime))
                                         when 1 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-01'
                                         when 2 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-02'
                                         when 3 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-03'
                                         when 4 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-04'
                                         when 5 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-05'
                                         when 6 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-06'
                                         when 7 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-07'
                                         when 8 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-08'
                                         when 9 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-09'
                                         when 10 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-10'
                                         when 11 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-11'
                                         when 12 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-12'
                                    end
                        WHEN 8 THEN cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar (4)) + '-01-01' as datetime)) as nvarchar(4))
                        ELSE NULL
                END [interv],
                COUNT(tt.IdCHAIN) cnt,
                SUM(have_res) + SUM(CASE WHEN have_operator = 1 AND cr1 = 1 AND missed = 0 AND block_b = 0 AND have_res = 0 AND operator_missed = 0 AND not_between_work_time =0 THEN 1 ELSE 0 END) cnt_connected,
                SUM(passed_in) cnt_passed_in,
                SUM(passed_out) cnt_passed_out,
                SUM(CASE WHEN have_res = 0 AND 
                              have_operator = 0 AND 
                              cr1 = 0 AND 
                              missed = 0 AND 
                              block_b = 0 AND 
                              operator_missed = 0 AND 
                              not_between_work_time=0
                         THEN 1 ELSE 0 END) + SUM(missed)  cnt_missed,
                SUM(block_b) + SUM(CASE WHEN have_operator = 0 AND cr1 = 1 AND missed = 0 AND block_b = 0 AND (have_res = 0 AND operator_missed = 0) AND (not_between_work_time =0) THEN 1 ELSE 0 END) cnt_block_b,
                SUM(not_between_work_time) cnt_not_between_work_time,
                SUM(CASE WHEN have_res = 0 AND 
                              have_operator = 1 AND 
                              cr1 = 0 AND 
                              missed = 0 AND 
                              block_b = 0 AND 
                              operator_missed = 1 AND 
                              not_between_work_time=0
                         THEN 1 ELSE 0 END) cnt_operator_missed,
                SUM(CASE WHEN p_LenQueue &lt;= CASE WHEN @secX=0 THEN p_LenQueue ELSE @secX END AND (have_res = 1 OR (have_operator = 1 AND cr1 = 1 AND have_res = 0)) THEN 1 ELSE 0 END) answen_before_X_second
        FROM (
        SELECT IdCHAIN,
               DateStart,
               CASE WHEN SUM(CASE WHEN CallResult IN (5,18) AND IdOperator != 'ab000000-0000-0000-0000-000000000000' THEN 1 
                                  ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END have_res,
               MIN(DateTimeStart) DateTimeStart,
               MAX(DateTimeStart) MAX_DateTimeStart,
               CASE WHEN SUM(CASE WHEN LEFT(BLineNum,2) NOT IN ('11','12','13','14') AND COALESCE(IdBUser,'ab000000-0000-0000-0000-000000000000') NOT IN ( 'ab000000-0000-0000-0000-000000000000','bf000000-0000-0000-0000-000000000000') AND  LenTime &gt; 0 THEN 1 ELSE 0 END ) &gt; 1 THEN 1 ELSE 0 END passed_in,
               CASE WHEN SUM(CASE WHEN LEFT(BLineNum,2) IN ('11','12','13','14') AND LenTime &gt; 0 THEN 1 ELSE 0 END ) &gt; 0 THEN 1 ELSE 0 END passed_out,
               CASE WHEN SUM(CASE WHEN COALESCE(IdOperator,'ab000000-0000-0000-0000-000000000000') != 'ab000000-0000-0000-0000-000000000000' THEN 1 ELSE 0 END ) &gt; 0 THEN 1 ELSE 0 END have_operator,
               CASE WHEN SUM(CASE WHEN CallResult IN (13) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END missed,
               CASE WHEN SUM(CASE WHEN CallResult IN (21,22,25,26,27) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END block_b,
               CASE WHEN SUM(CASE WHEN CallResult IN (23) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END not_between_work_time,
               CASE WHEN SUM(CASE WHEN CallResult IN (7) THEN 1 ELSE 0 END) &gt; 0 THEN 1 ELSE 0 END operator_missed,
               CASE WHEN SUM(CASE WHEN CallResult = 1 THEN 1 ELSE 0 END)  &gt; 0 THEN 1 ELSE 0 END cr1,
               MAX(LenQueue) p_LenQueue
        FROM  oktell_cc_temp..A_Cube_CC_EffortConnections c
        WHERE convert(varchar(20),DateTimeStart,102) &gt;= convert(varchar(20),@dt1,102)
            AND convert(varchar(20),DateTimeStart,102) &lt;= convert(varchar(20),@dt2,102)
            AND convert(varchar(20),DateTimeStart,108) &gt;= convert(varchar(20),@t1,108)
            AND convert(varchar(20),DateTimeStart,108) &lt;= convert(varchar(20),@t2,108)
            AND (NOT EXISTS(SELECT 1 FROM @task) OR EXISTS(SELECT 1 FROM @task sub_b WHERE sub_b.id = c.IdTask))
            AND IdCHAIN IS NOT NULL
            AND COALESCE(IsOutput,0) = 0
            GROUP BY IdCHAIN, DateStart
        ) as tt
       GROUP BY CASE @IdConstructorAxis
                        WHEN 1 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 5, cast((floor(cast(DateTimeStart as float) * 287.999999999999) / 287.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 2 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 15, cast((floor(cast(DateTimeStart as float) * 95.999999999999) / 95.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 3 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(mi, 30, cast((floor(cast(DateTimeStart as float) * 47.999999999999) / 47.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 4 THEN convert(nvarchar(5), cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime), 108) + ' - ' + 
                                    convert(nvarchar(5), dateadd(hh, 1, cast((floor(cast(DateTimeStart as float) * 23.999999999999) / 23.999999999999 - floor(cast(DateTimeStart as float))) as datetime)), 108)
                        WHEN 5 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float)) as datetime), 10)
                        WHEN 6 THEN cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime), 10) + ' - ' + 
                                    cast(datepart(yy, cast(floor(cast(DateTimeStart as float)) as datetime)) as nvarchar(4)) + '-' + 
                                    convert(nvarchar(5), dateadd(dd, 7, cast(floor(cast(DateTimeStart as float) - datepart(dw, DateTimeStart) + 1) as datetime)), 10)
                        WHEN 7 THEN case datepart(mm, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime))
                                         when 1 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-01'
                                         when 2 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-02'
                                         when 3 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-03'
                                         when 4 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-04'
                                         when 5 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-05'
                                         when 6 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-06'
                                         when 7 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-07'
                                         when 8 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-08'
                                         when 9 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-09'
                                         when 10 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-10'
                                         when 11 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-11'
                                         when 12 then cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar(4)) + '-' + cast(datepart(mm, DateTimeStart) as nvarchar(2)) + '-01' as datetime)) as nvarchar(4)) + '-12'
                                    end
                        WHEN 8 THEN cast(datepart(yy, cast(cast(datepart(yy, DateTimeStart) as nvarchar (4)) + '-01-01' as datetime)) as nvarchar(4))
                        ELSE NULL
                END
    )     t
        Order by 1, 2
END</sqltext>
      <GroupFields1 Count="0" />
      <GroupFields2 Count="0" />
      <ValueFields Count="0" />
      <Filter IsNull="0" Count="7">
        <fi00 IsNull="0">
          <Id>1</Id>
          <Caption>_Дата</Caption>
          <Code>_@dt1</Code>
          <FilterType>2</FilterType>
          <Query>_</Query>
        </fi00>
        <fi01 IsNull="0">
          <Id>2</Id>
          <Caption>_</Caption>
          <Code>_@dt2</Code>
          <FilterType>3</FilterType>
          <Query>_</Query>
        </fi01>
        <fi02 IsNull="0">
          <Id>3</Id>
          <Caption>_Время</Caption>
          <Code>_@t1</Code>
          <FilterType>5</FilterType>
          <Query>_</Query>
        </fi02>
        <fi03 IsNull="0">
          <Id>4</Id>
          <Caption>_</Caption>
          <Code>_@t2</Code>
          <FilterType>6</FilterType>
          <Query>_</Query>
        </fi03>
        <fi04 IsNull="0">
          <Id>5</Id>
          <Caption>_Интервал (если не выбрано - час)</Caption>
          <Code>_@IdConstructorAxis</Code>
          <FilterType>51</FilterType>
          <Query>_SELECT 1 , '5 минут'
UNION
SELECT 2 , '15 минут'
UNION
SELECT 3 , '30 минут'
UNION
SELECT 4 , 'Час'
UNION
SELECT 5 , 'День'
UNION
SELECT 6 , 'Неделя'
UNION
SELECT 7 , 'Месяц'
UNION
SELECT 8 , 'Год'</Query>
        </fi04>
        <fi05 IsNull="0">
          <Id>6</Id>
          <Caption>_X сек. ожидания до ответа (0 - не учитывать)</Caption>
          <Code>_@secX</Code>
          <FilterType>8</FilterType>
          <Query>_</Query>
        </fi05>
        <fi06 IsNull="0">
          <Id>7</Id>
          <Caption>_Задачи (если не выбрано - все)</Caption>
          <Code>_@task</Code>
          <FilterType>15</FilterType>
          <Query>_</Query>
        </fi06>
      </Filter>
    </Details>
  </Report>
</ReportFile>