Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. /************* Time Spent (TS) *************/
  2. Select
  3. [Source]
  4. ,[Ticket_ID]
  5. ,[Time_Spent_Log_ID]
  6. ,[Time_Spent_Submit_DateTime]
  7. ,[Person_ID]
  8. ,[Total_Time_Spent]
  9. ,[Time_Spent_Start_DateTime_Hour]
  10. ,[Time_Spent_End_DateTime_Hour]
  11. ,[DateTime_Hour]
  12. ,[Time_Spent_In_Hour] = Case
  13. When [Time_Spent_Start_DateTime_Hour] = [DateTime_Hour] and
  14. [Time_Spent_End_DateTime_Hour] = [DateTime_Hour]
  15. Then [Total_Time_Spent]
  16. When [Time_Spent_End_DateTime_Hour] = [DateTime_Hour]
  17. Then Extract(MINUTE from [Time_Spent_Submit_DateTime])
  18. When [Time_Spent_Start_DateTime_Hour] = [DateTime_Hour]
  19. Then 60 - Extract(MINUTE from trunc([Time_Spent_Submit_DateTime] - [Total_Time_Spent],'MI'))
  20. Else 60 End
  21. FROM (
  22. /************* Create Time Keys (CTK) *************/
  23. Select
  24. [Source]
  25. ,[Ticket_ID]
  26. ,[Time_Spent_Log_ID]
  27. ,[Time_Spent_Submit_DateTime]
  28. ,[Person_ID]
  29. ,[Total_Time_Spent]
  30. ,[Time_Spent_Start_DateTime_Hour]
  31. ,[Time_Spent_End_DateTime_Hour]
  32. ,[Earliest_Time_Key] = Case
  33. When [Time_Spent_Start_DateTime_Hour] < trunc(sysdate() - @Months, 'MM')
  34. Then trunc(sysdate() - @Months, 'MM')
  35. Else [Time_Spent_Start_DateTime_Hour] End
  36. ,[Latest_Time_Key] = Case
  37. When [Time_Spent_End_DateTime_Hour] > trunc(
  38. DateAdd(
  39. Dateadd(sysdate(),1,'MM')
  40. ,-1,'HH'))
  41. Then trunc(
  42. DateAdd(
  43. Dateadd(sysdate(),1,'MM')
  44. ,-1,'HH'))
  45. Else [Time_Spent_End_DateTime_Hour] End
  46. FROM (
  47. /************* Various Sources with Times Unioned Together *************/
  48. /************* Source Without Time Union (SWTU) *************/
  49. Select
  50. [Source]
  51. ,[Ticket_ID]
  52. ,[Time_Spent_Log_ID]
  53. ,[Person_ID]
  54. ,[Total_Time_Spent]
  55. ,[Time_Spent_Start_DateTime_Hour] = trunc(Case
  56. When [Row_ID] = 1
  57. Then dateadd([Work_Day],8,'HH')
  58. Else dateadd([Work_Day],8,'HH') + (
  59. (LAG([Hour_Sum],1) Over(Partition By [Person_ID], [Work_Day] Order By [Ticket_ID] Asc))
  60. * 60 )
  61. End, 'HH')
  62. ,[Time_Spent_End_DateTime_Hour] = trunc(dateadd([Work_Day],8,'HH') + ([Hour_Sum] * 60),'HH')
  63. ,[Time_Spent_Submit_DateTime] = dateadd([Work_Day],8,'HH') + ([Hour_Sum] * 60)
  64. From (
  65. Select
  66. [Entry_ID] as [Ticket_ID]
  67. ,[Person_ID]
  68. ,[Work_Day]
  69. ,[Hours]
  70. ,[Row_ID] = ROW_NUMBER() OVER(Partition By [Person_ID], [Work_Day] Order By [Entry_ID] Asc)
  71. ,[Hour_Sum] = SUM(Hours]) OVER(Partition By [Person_ID], [Work_Day] Order By [Entry_ID] Asc)
  72. From System.dbo.Daily_Time
  73. Where [Work_Day] >= trunc(sysdate() - @Months,'MM')
  74. Group By [Entry_ID], [Person_ID], [Work_Day], [Hours]
  75. ) as SWTU
  76. ) as CTK
  77. ) as TS
  78. LEFT JOIN Date_Hour_Dimension DHD on
  79. DHD.[DateTime_Hour] >= TS.Earliest_Time_Key
  80. and DHD.[DateTime_Hour] <= TS.Latest_Time_Key
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement