Распределение операторов по статусам — различия между версиями
Материал из Oktell
Строка 1: | Строка 1: | ||
[[Дополнительно|Наверх]] | [[Дополнительно|Наверх]] | ||
− | Запрос показывает распределение операторов Call-центра по статусам "Готов", "Занят" и "Перерыв". | + | Запрос показывает распределение операторов Call-центра по статусам "Готов", "Занят" и "Перерыв". Выборка происходит на основе всех изменений, которые происходили в состояниях операторов за все время. Если вы хотите выводить информацию об изменениях только за текущий день, раскомментируйте соответствующую строку. |
+ | |||
+ | Также в запросе имеется закомментированная строка для фильтрации данных по конкретной задаче. | ||
<pre> | <pre> | ||
Строка 16: | Строка 18: | ||
(SELECT u.id, u.name , | (SELECT u.id, u.name , | ||
coalesce((select top 1 s.state from A_UserStateHistory s | 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) | + | WHERE s.UserId = u.id |
+ | --and cast(s.TimeChange as DATE) = cast(getdate() as DATE) | ||
ORDER BY s.TimeChange DESC),0) [state] | ORDER BY s.TimeChange DESC),0) [state] | ||
FROM A_Users u | FROM A_Users u |
Версия 12:56, 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 --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