Advertisement
WorkAkkaunt

Дашборд ЦМД по часам

Aug 8th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.27 KB | None | 0 0
  1. DECLARE @DT date = GETDATE()
  2. DECLARE @TASKS  TABLE(Id uniqueidentifier)
  3.  
  4. INSERT INTO @TASKS
  5. SELECT '9A92A716-D5DB-48F6-8418-DCFF8392018A' --Физ лица перезвоны
  6. INSERT INTO @TASKS
  7. SELECT 'E984DCD7-A62D-4D2D-8A86-416D3FD52C9B' --Физ лица входящая
  8. INSERT INTO @TASKS
  9. SELECT 'CE73BD66-76D4-4999-BEF2-EEFE8A04961E' --Физ лица исходящая
  10. --------------------------------------------------------------------------------------------
  11. DECLARE @ReadyTable TABLE (TimeStart time, Success int, Failed int);
  12.  
  13. DECLARE @EffortConnections TABLE (IdEffort uniqueidentifier, TimeStart time, CallResult int)
  14.  
  15. INSERT INTO @EffortConnections
  16. SELECT IdEffort, TimeStart, CallResult
  17. FROM [oktell_cc_temp].[dbo].[A_Cube_CC_EffortConnections]
  18. WHERE DateStart = @DT
  19.     AND IdTask IN (SELECT * FROM @TASKS);
  20.  
  21. WITH EffortConnections AS
  22. (
  23.     SELECT IdEffort
  24.         , MIN(TimeStart) as TimeStart
  25.     FROM @EffortConnections
  26.     GROUP BY IdEffort
  27. )
  28.  
  29. INSERT INTO @ReadyTable
  30. SELECT DISTINCT EC0.TimeStart
  31.     , CASE
  32.         WHEN EC1.CallResult = 5 THEN 1
  33.         ELSE 0
  34.     END
  35.     , CASE
  36.         WHEN EC1.CallResult = 13 THEN 1
  37.         WHEN EC1.CallResult = 18 THEN 1
  38.         ELSE 0
  39.     END
  40. FROM EffortConnections as EC0
  41. LEFT JOIN @EffortConnections as EC1
  42.     ON EC0.TimeStart = EC1.TimeStart
  43.  
  44. DECLARE @Result1 TABLE([Hour] nvarchar(40), [Index] int, Accepted int, Losted int)
  45.  
  46. INSERT INTO @Result1
  47. SELECT (SELECT [dbo].[HourToStrFormat](DATEPART(HOUR, TimeStart)))
  48.     , DATEPART(HOUR, TimeStart)
  49.     , SUM(Success)
  50.     , SUM(Failed)
  51. FROM @ReadyTable
  52. GROUP BY DATEPART(HOUR, TimeStart)
  53.  
  54. DECLARE @Result2 TABLE ([Hour] nvarchar(40), [All] int, Accepted int, Losted int)
  55.  
  56. INSERT INTO @Result2
  57. SELECT [Hour]
  58.     , Accepted + Losted
  59.     , Accepted
  60.     , Losted
  61. FROM @Result1
  62. ORDER BY [Index]
  63.  
  64. DECLARE @all int = (SELECT SUM([All]) FROM @Result2)
  65. DECLARE @accepted int = (SELECT SUM(Accepted) FROM @Result2)
  66. DECLARE @losted int = (SELECT SUM(Losted) FROM @Result2)
  67.  
  68. INSERT INTO @Result2 VALUES('Всего', @all, @accepted, @losted)
  69.  
  70. SELECT [Hour] as 'Интервал'
  71.     , [All] as 'Всего'
  72.     , Accepted as 'Принято'
  73.     , Losted as 'Потеряно'
  74.     , (SELECT [dbo].[GetPersent](Accepted, [All])) as 'Принято %'
  75.     , (SELECT [dbo].[GetPersent](Losted, [All])) as 'Потеряно %'
  76. FROM @Result2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement