Распределение операторов по статусам — различия между версиями
Материал из Oktell
Строка 1: | Строка 1: | ||
− | [[ | + | [[Работа с БД Oktell|Наверх]] |
Запрос показывает распределение операторов Call-центра по статусам "Готов", "Занят" и "Перерыв". Выборка происходит на основе всех изменений, которые происходили в состояниях операторов за все время. Если вы хотите выводить информацию об изменениях только за текущий день, раскомментируйте соответствующую строку. | Запрос показывает распределение операторов Call-центра по статусам "Готов", "Занят" и "Перерыв". Выборка происходит на основе всех изменений, которые происходили в состояниях операторов за все время. Если вы хотите выводить информацию об изменениях только за текущий день, раскомментируйте соответствующую строку. |
Версия 12:13, 17 декабря 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 --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