Распределение операторов по статусам — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 14: Строка 14:
 
   
 
   
 
   FROM  
 
   FROM  
   (SELECT --u.id, u.name ,  
+
   (SELECT u.id, u.name ,  
(select top 1 s.state  from A_UserStateHistory s WHERE s.UserId = u.id ORDER BY s.TimeChange DESC) [state]
+
coalesce((select top 1 s.state  from A_UserStateHistory s WHERE s.UserId = u.id ORDER BY s.TimeChange DESC),0) [state]
 
FROM A_Users u
 
FROM A_Users u
 
where u.id in (select OperatorId from [oktell_settings].[dbo].[A_TaskManager_Operators]
 
where u.id in (select OperatorId from [oktell_settings].[dbo].[A_TaskManager_Operators]

Версия 12:06, 27 августа 2014

Наверх

Запрос показывает распределение операторов 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 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