Guest User

Untitled

a guest
Aug 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. DECLARE @mediaTable TABLE
  2. (
  3. MediaCode varchar(1),
  4. NumEvents tinyint,
  5. TotalTime decimal (9, 1),
  6. AverageTime decimal (9, 1)
  7. )
  8.  
  9. MediaCode NumEvents TotalTime AverageTime
  10. A 2 8.0 4.0
  11. B 42 104.0 2.5
  12. C 26 26.2 1.0
  13. D 0 0.0 0.0
  14. E 4 14.0 3.5
  15. F 0 0.0 0.0
  16. G 2 2.5 1.3
  17. H 0 0.0 0.0
  18. I 4 9.0 2.3
  19. J 1 2.0 2.0
  20. L 6 57.5 9.6
  21. M 8 12.0 1.5
  22. N 0 0.0 0.0
  23. P 0 0.0 0.0
  24. S 4 20.0 5.0
  25. T 4 10.0 2.5
  26. V 2 1.5 0.8
  27. W 8 29.0 3.6
  28. X 0 0.0 0.0
  29.  
  30. SELECT SUM(NumEvents) AS [sum],
  31. SUM(TotalTime) AS [sum],
  32. SUM(CASE WHEN MediaCode IN ('A','B','D','E','F','G','I','J','L','M','P','S','T') THEN NumEvents END) AS [sum],
  33. SUM(CASE WHEN MediaCode IN ('A','B','D','E','F','G','I','J','L','M','P','S','T') THEN TotalTime END) AS [sum],
  34. SUM(CASE WHEN MediaCode IN ('B', 'T') THEN NumEvents / 2 ELSE NumEvents END) AS [sum],
  35. SUM(CASE WHEN MediaCode IN ('B', 'T') THEN TotalTime / 2 ELSE TotalTime END) AS [sum]
  36. FROM @mediaTable
  37.  
  38. sum sum sum sum sum sum
  39. 113 295.7 77 239.0 90 238.700000
  40.  
  41. SUM(CASE WHEN MediaCode IN ('B', 'T') THEN TotalTime / 2 ELSE TotalTime END) AS [sum]
  42.  
  43. select CAST(238.700000 AS DECIMAL(9,1)) it returns 238.7
  44.  
  45. SELECT . . .,
  46. CAST(SUM(CASE WHEN MediaCode IN ('B', 'T')
  47. THEN TotalTime / 2 ELSE TotalTime
  48. END) AS DECIMAL(9, 1) --- will return 238.7
  49. ) AS [sum]
  50. FROM @mediaTable mt;
Add Comment
Please, Sign In to add comment