Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. +------------------------------------------++-------------------------------------------------------+
  2. | DAILY || MONTHLY |
  3. +-------------+-------+-------+----------+-------+-------++-------+------------+-------+----------+-------+-------+
  4. | Creator | Count | Time | Average | Min. | Max. || Count | Daily Avg. | Time | Average | Min. | Max. |
  5. +-------------+-------+-------+----------+-------+-------++-------+------------+-------+----------+-------+-------+
  6. | williamsonb | 42 | 3:56 | 00:08:34 | 00:02 | 00:34 || ... | ... | ... | ... | ... | ... |
  7. | petersonl | ... | ... | ... | ... | ... || ... | ... | ... | ... | ... | ... |
  8. | ... | ... | ... | ... | ... | ... || ... | ... | ... | ... | ... | ... |
  9. +-------------+-------+-------+----------+-------+-------++-------+------------+-------+----------+-------+-------+
  10.  
  11. CREATE TABLE
  12. WorkOrders
  13. (CreatedBy CHAR(25)
  14. ,CreatedTime DATETIME)
  15.  
  16. INSERT INTO
  17. WorkOrders
  18. (williamsonb, 03/26/2017 12:05:00.000 PM)
  19. ;(williamsonb, 03/26/2017 12:12:00.000 PM)
  20. ;(williamsonb, 03/26/2017 01:31:00.000 PM)
  21. ;(williamsonb, 03/02/2017 09:45:00.000 AM)
  22. ;(williamsonb, 03/02/2017 09:49:00.000 AM)
  23. ;(williamsonb, 03/02/2017 09:51:00.000 AM)
  24. ;(williamsonb, 02/04/2017 02:14:00.000 PM)
  25. ;(petersonl, 03/26/2017 07:42:00.000 AM)
  26. ;(petersonl, 03/26/2017 07:45:00.000 AM)
  27. ;(petersonl, 03/26/2017 07:46:00.000 AM)
  28. ;(petersonl, 03/05/2017 08:47:00.000 AM)
  29. ;(petersonl, 03/05/2017 08:49:00.000 AM)
  30. ;(petersonl, 03/05/2017 08:50:00.000 AM)
  31. ;(petersonl, 01/17/2017 06:54:00.000 AM)
  32.  
  33. DECLARE
  34. @DayCount INT =
  35. COUNT(
  36. SELECT
  37. CreatedBy
  38.  
  39. FROM
  40. WorkOrders
  41.  
  42. WHERE
  43. CreatedTime =
  44. DATEADD(DAY,-1,GETDATE())
  45. ,@DayTimeSum DECIMAL = SUM(DATEDIFF(HOUR,SELECT(HOUR(CreatedTime) FROM WorkOrders WHERE DATEADD(DAY,-1,GETDATE()) ) + DATEDIFF(MINUTE,SELECT(MINUTE(CreationDate)/60 FROM WorkOrders WHERE DATEADD(DAY,-1,GETDATE()) ) + DATEDIFF(SECOND,SELECT(SECOND(CreationDate)/3600 FROM WorkOrders WHERE DATEADD(DAY,-1,GETDATE()) )
  46. )
  47. ,@DaySumHours INT = @DayTimeSum - MOD(@DayTimeSum % 1)
  48. ,@DaySumMinutes INT = (MOD(@DayTimeSum % 1) - MOD(MOD(@DayTimeSum % 1) % 1/60) ) * 60
  49. ,@DayAvgTime DECIMAL = @DayCount / @DayTimeSum
  50. ,@DayAvgHours INT = @DayAvgTime - MOD(@DayAvgTime % 1)
  51. ,@DayAvgMinutes INT = (MOD(@DayAvgTime % 1) - MOD(MOD(@DayAvgTime % 1) % 1/60) ) * 60
  52. ,@DayAvgSeconds INT = ( (MOD(@DayAvgTime % 1) - MOD(MOD(@DayAvgTime % 1) % 1/60) ) - MOD((MOD(@DayAvgTime % 1) - MOD(MOD(@DayAvgTime % 1) % 1/60) ) % 1/3600) ) * 3600
  53. ,@MonthTimeSum DECIMAL = SUM(DATEDIFF(HOUR,SELECT(HOUR(CreatedTime) FROM WorkOrders WHERE DATEADD(MONTH,-1,GETDATE()) ) + DATEDIFF(MINUTE,SELECT(MINUTE(CreationDate)/60 FROM WorkOrders WHERE DATEADD(MONTH,-1,GETDATE()) ) + DATEDIFF(SECOND,SELECT(SECOND(CreationDate)/3600 FROM WorkOrders WHERE DATEADD(MONTH,-1,GETDATE()) )
  54. )
  55.  
  56. SELECT
  57. DISTINCT CreatedBy
  58. ,@DayCount AS [Count]
  59. ,@DaySumHours + ':' + @DaySumMinutes + ':' + @DaySumSeconds AS [Total]
  60. ,@DayAvgHours + ':' + @DayAvgMinutes + ':' + @DayAvgSeconds AS [Average]
  61. ,LAST(SELECT
  62. CAST(SELECT CAST(CreatedTime AS TIME) AS CHAR(5))) AS [Min.]
  63. ,TOP 1(CAST(SELECT CAST(CreatedTime AS TIME) AS CHAR(5))) AS [Max.]
  64.  
  65. FROM
  66. WorkOrders
  67.  
  68. WHERE
  69. CreatedTime BETWEEN DATEADD(MONTH,-1,GETDATE()) AND GETDATE()
  70.  
  71. GROUP BY
  72. CreatedBy
  73.  
  74. ORDER BY
  75. CreatedTime DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement