Распределение операторов по статусам

Материал из Oktell
Перейти к: навигация, поиск

Наверх

Запрос показывает распределение операторов Call-центра по статусам "Готов", "Занят" и "Перерыв". Выборка происходит на основе всех изменений, которые происходили в состояниях операторов за все время. Если вы хотите выводить информацию об изменениях только за текущий день, раскомментируйте соответствующую строку.

Также в запросе имеется закомментированная строка для фильтрации данных по конкретной задаче.

SELECT  
  sum( CASE WHEN state = 1 THEN 1 ELSE 0 END) [Готов]
  ,sum( CASE WHEN state = 2 THEN 1 ELSE 0 END) [Перерыв]
  ,sum( CASE WHEN state = 5 or state=6 THEN 1 ELSE 0 END) [Занят]
  ,sum( CASE WHEN state = 0 THEN 1 ELSE 0 END) [Отключен]
  ,sum( CASE WHEN state = 3 THEN 1 ELSE 0 END) [Нет на месте]
  ,sum( CASE WHEN state = 7 THEN 1 ELSE 0 END) [Без телефона]
  
 
  FROM 
  (SELECT u.id, u.name , 
 coalesce((select top 1 s.state  from A_UserStateHistory s 
  WHERE s.UserId = u.id  
 --and cast(s.TimeChange as DATE) = cast(getdate() as DATE)
  ORDER BY s.TimeChange DESC),0) [state] 
FROM A_Users u
where u.id in (select OperatorId from [oktell_settings].[dbo].[A_TaskManager_Operators]
 --  where TaskId='25130D79-8766-4EAD-9C22-596CF2B465F9'
  )
  )j