Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @d1 DATETIME = '20190731 00:00'
- DECLARE @d2 DATETIME = '20190731 23:59'
- DECLARE @t1 DATETIME = '19000101 00:00'
- DECLARE @t2 DATETIME = '19000101 23:59'
- DECLARE @user TABLE (Id UNIQUEIDENTIFIER)
- INSERT INTO @user
- SELECT Id FROM [oktell_cc_temp].[dbo].[A_Cube_CC_Cat_OperatorInfo]
- ------------------------------------------------------------------------------------------------------
- --------СЧИТАЕМ ПРИНЯТЫЕ------------------------------------------------------------------------------
- DECLARE @Accepted TABLE (UserId uniqueidentifier, [Count] int, AvgTimeAnswer int, AvgTimeTalking int)
- INSERT INTO @Accepted
- SELECT BUserId
- , COUNT(DISTINCT IdChain)
- , AVG(DATEDIFF(SECOND, TimeStart, TimeAnswer))
- , AVG(DATEDIFF(SECOND, TimeAnswer, TimeStop))
- FROM [oktell].[dbo].[A_Stat_Connections_1x1] AS SC
- WHERE BUserId IN (SELECT * FROM @user)
- AND TimeStart BETWEEN @d1 AND @d2
- AND CAST(TimeStart as time) BETWEEN CAST(@t1 as time) AND CAST(@t2 as time)
- GROUP BY BUserId
- ------------------------------------------------------------------------------------------------------
- --------СЧИТАЕМ ПРОПУЩЕННЫЕ---------------------------------------------------------------------------
- DECLARE @Missed TABLE (UserId uniqueidentifier, [Count] int)
- INSERT INTO @Missed
- SELECT BUserId
- , COUNT(DISTINCT IdChain)
- FROM [oktell].[dbo].[A_Stat_MissedCalls] AS MC
- WHERE BUserId IN (SELECT * FROM @user)
- AND TimeStart BETWEEN @d1 AND @d2
- AND CAST(TimeStart as time) BETWEEN CAST(@t1 as time) AND CAST(@t2 as time)
- GROUP BY BUserId
- -------------------------------------------------------------------------------------------------------
- -------СЧИТАЕМ ВСЕ ЗВОНКИ------------------------------------------------------------------------------
- DECLARE @All TABLE (UserId uniqueidentifier, [Count] int)
- INSERT INTO @All
- SELECT U.Id
- , ISNULL( ISNULL(A.[Count], 0) + ISNULL(M.[Count], 0) , 0)
- FROM @user as U
- LEFT JOIN @Accepted as A
- ON U.Id = A.UserId
- LEFT JOIN @Missed as M
- ON U.Id = M.UserId
- -------------------------------------------------------------------------------------------------------
- SELECT OI.[Name] as 'Оператор'
- , A.[Count] as 'Всего'
- , ISNULL(AC.[Count], 0) as 'Принято'
- , ISNULL(M.[Count], 0) as 'Пропущено'
- , ISNULL((SELECT [dbo].[GetPersent](AC.[Count], A.[Count])), '0%') as 'Принято %'
- , ISNULL((SELECT [dbo].[GetPersent](M.[Count], A.[Count])), '0%') as 'Пропущено %'
- , ISNULL(AC.AvgTimeAnswer, 0) as 'Среднее время ответа сек'
- , ISNULL((SELECT [dbo].[GetTimeFromSecond](AC.AvgTimeTalking)), 0) as 'Среднее время разговора'
- FROM @All AS A
- LEFT JOIN [oktell_cc_temp].[dbo].[A_Cube_CC_Cat_OperatorInfo] AS OI
- ON A.UserId = OI.Id
- LEFT JOIN @Accepted AS AC
- ON A.UserId = AC.UserId
- LEFT JOIN @Missed AS M
- ON A.UserId = M.UserId
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement