Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @DT date = GETDATE()
- DECLARE @TASKS TABLE(Id uniqueidentifier)
- INSERT INTO @TASKS
- SELECT '9A92A716-D5DB-48F6-8418-DCFF8392018A' --Физ лица перезвоны
- INSERT INTO @TASKS
- SELECT 'E984DCD7-A62D-4D2D-8A86-416D3FD52C9B' --Физ лица входящая
- INSERT INTO @TASKS
- SELECT 'CE73BD66-76D4-4999-BEF2-EEFE8A04961E' --Физ лица исходящая
- --------------------------------------------------------------------------------------------
- DECLARE @ReadyTable TABLE (TimeStart time, Success int, Failed int);
- DECLARE @EffortConnections TABLE (IdEffort uniqueidentifier, TimeStart time, CallResult int)
- INSERT INTO @EffortConnections
- SELECT IdEffort, TimeStart, CallResult
- FROM [oktell_cc_temp].[dbo].[A_Cube_CC_EffortConnections]
- WHERE DateStart = @DT
- AND IdTask IN (SELECT * FROM @TASKS);
- WITH EffortConnections AS
- (
- SELECT IdEffort
- , MIN(TimeStart) as TimeStart
- FROM @EffortConnections
- GROUP BY IdEffort
- )
- INSERT INTO @ReadyTable
- SELECT DISTINCT EC0.TimeStart
- , CASE
- WHEN EC1.CallResult = 5 THEN 1
- ELSE 0
- END
- , CASE
- WHEN EC1.CallResult = 13 THEN 1
- WHEN EC1.CallResult = 18 THEN 1
- ELSE 0
- END
- FROM EffortConnections as EC0
- LEFT JOIN @EffortConnections as EC1
- ON EC0.TimeStart = EC1.TimeStart
- DECLARE @Result1 TABLE([Hour] nvarchar(40), [Index] int, Accepted int, Losted int)
- INSERT INTO @Result1
- SELECT (SELECT [dbo].[HourToStrFormat](DATEPART(HOUR, TimeStart)))
- , DATEPART(HOUR, TimeStart)
- , SUM(Success)
- , SUM(Failed)
- FROM @ReadyTable
- GROUP BY DATEPART(HOUR, TimeStart)
- DECLARE @Result2 TABLE ([Hour] nvarchar(40), [All] int, Accepted int, Losted int)
- INSERT INTO @Result2
- SELECT [Hour]
- , Accepted + Losted
- , Accepted
- , Losted
- FROM @Result1
- ORDER BY [Index]
- DECLARE @all int = (SELECT SUM([All]) FROM @Result2)
- DECLARE @accepted int = (SELECT SUM(Accepted) FROM @Result2)
- DECLARE @losted int = (SELECT SUM(Losted) FROM @Result2)
- INSERT INTO @Result2 VALUES('Всего', @all, @accepted, @losted)
- SELECT [Hour] as 'Интервал'
- , [All] as 'Всего'
- , Accepted as 'Принято'
- , Losted as 'Потеряно'
- , (SELECT [dbo].[GetPersent](Accepted, [All])) as 'Принято %'
- , (SELECT [dbo].[GetPersent](Losted, [All])) as 'Потеряно %'
- FROM @Result2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement