Zeit_Stempelungen_Pausen.sql 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. select "Employee Number_Employees" as "Employee Number_Employees",
  2. "Name_Employees" as "Name_Employees",
  3. "Initials_Employees" as "Initials_Employees",
  4. "Mechanic Number_Employees" as "Mechanic Number_Employees",
  5. "Salesman Number_Employees" as "Salesman Number_Employees",
  6. "Employment Date_Employees" as "Employment Date_Employees",
  7. "Termination Date_Employees" as "Termination Date_Employees",
  8. "Leave Date_Employees" as "Leave Date_Employees",
  9. "Employee Number_Times" as "Employee Number_Times",
  10. "Order Number_Times" as "Order Number_Times",
  11. "Start Time_Times" as "Start Time_Times",
  12. "Type_Times" as "Type_Times",
  13. "Order Positions_Times" as "Order Positions_Times",
  14. "End Time_Times" as "End Time_Times",
  15. "Duration Minutes_Times" as "Duration Minutes_Times",
  16. "Type_Time_Types" as "Type_Time_Types",
  17. "Description_Time_Types" as "Description_Time_Types",
  18. "Datum" as "Datum",
  19. "Hauptbetrieb" as "Hauptbetrieb",
  20. "Standort" as "Standort",
  21. "Monteur" as "Monteur",
  22. "Anwesenheit_" as "Anwesenheit_",
  23. "produktiv_" as "produktiv_",
  24. "unproduktiv_" as "unproduktiv_",
  25. "Zeitkategorie" as "Zeitkategorie",
  26. "Zeitkategorie2" as "Zeitkategorie2",
  27. "Ges. Std._" as "Ges. Std._",
  28. "Order Number" as "Order Number",
  29. "Wochentag_Datum" as "Wochentag_Datum",
  30. "Is Flextime_Employees" as "Is Flextime_Employees",
  31. "Break Time Registration_Employees" as "Break Time Registration_Employees",
  32. "Is Latest Record_break_times" as "Is Latest Record_break_times",
  33. "Dayofweek_break_times" as "Dayofweek_break_times",
  34. "Break Start_break_times" as "Break Start_break_times",
  35. "Break End_break_times" as "Break End_break_times",
  36. "Pause" as "Pause",
  37. "Start_Times_Stunde" as "Start_Times_Stunde",
  38. "Start_Times_Minute" as "Start_Times_Minute",
  39. "End_Times_Stunde" as "End_Times_Stunde",
  40. "End_Times_Minute" as "End_Times_Minute",
  41. "Start_Times_Minute_Dezimal" as "Start_Times_Minute_Dezimal",
  42. "Start_Times_Dezimal" as "Start_Times_Dezimal",
  43. "End_Times_Minute_Dezimal" as "End_Times_Minute_Dezimal",
  44. "End_Times_Dezimal" as "End_Times_Dezimal",
  45. "Pausenzeit_Stunde" as "Pausenzeit_Stunde",
  46. "Dayofweek_Worktimes" as "Dayofweek_Worktimes",
  47. "Work Duration_Worktimes" as "Work Duration_Worktimes",
  48. "Worktime Start_Worktimes" as "Worktime Start_Worktimes",
  49. "Worktime End_Worktimes" as "Worktime End_Worktimes",
  50. "Validity Date_Worktimes" as "Validity Date_Worktimes",
  51. MAX("Validity Date_Worktimes") OVER (partition by "Employee Number_Employees") as "Max_Validity_Date",
  52. "Validity Date_Break_times" as "Validity Date_Break_times",
  53. MAX("Validity Date_Break_times") OVER (partition by "Employee Number_Employees") as "Max_validity_date_Break_times",
  54. "Pausenzeit_Anw_mehr_als_6" as "Pausenzeit_Anw_mehr_als_6",
  55. "Anwesenheit" as "Anwesenheit"
  56. from
  57. (select "Employee Number_Employees",
  58. "Name_Employees",
  59. "Initials_Employees",
  60. "Mechanic Number_Employees",
  61. "Salesman Number_Employees",
  62. "Employment Date_Employees",
  63. "Termination Date_Employees",
  64. "Leave Date_Employees",
  65. "Employee Number_Times",
  66. "Order Number_Times",
  67. "Start Time_Times",
  68. "Type_Times",
  69. "Order Positions_Times",
  70. "End Time_Times",
  71. "Duration Minutes_Times",
  72. "Type_Time_Types",
  73. "Description_Time_Types",
  74. "Start Time_Times" as "Datum",
  75. '1' as "Hauptbetrieb",
  76. "Standort",
  77. "Monteur",
  78. "Anwesenheit_",
  79. "produktiv_",
  80. "Anwesenheit_" as "unproduktiv_",
  81. "Zeitkategorie",
  82. '' as "Zeitkategorie2",
  83. "Ges. Std._",
  84. "Order Number_Times" as "Order Number",
  85. "Wochentag_Datum",
  86. "Is Flextime_Employees",
  87. "Break Time Registration_Employees",
  88. "Is Latest Record_break_times",
  89. "Dayofweek_break_times",
  90. "Break Start_break_times",
  91. "Break End_break_times",
  92. "Pause",
  93. "Start_Times_Stunde",
  94. "Start_Times_Minute",
  95. "End_Times_Stunde",
  96. "End_Times_Minute",
  97. "Start_Times_Minute_Dezimal",
  98. "Start_Times_Dezimal",
  99. "End_Times_Minute_Dezimal",
  100. "End_Times_Dezimal",
  101. "Pause" as "Pausenzeit_Stunde",
  102. "Dayofweek_Worktimes",
  103. "Work Duration_Worktimes",
  104. "Worktime Start_Worktimes",
  105. "Worktime End_Worktimes",
  106. "Validity Date_Worktimes",
  107. "Validity Date_Break_times",
  108. "Pausenzeit_Anw_mehr_als_6",
  109. "Pausenzeit_Anw_mehr_als_6" as "Anwesenheit",
  110. MAX("Validity Date_Worktimes") OVER (partition by "Employee Number_Employees") as c56,
  111. MAX("Validity Date_Break_times") OVER (partition by "Employee Number_Employees") as c57
  112. from
  113. (select T1."employee_number" as "Employee Number_Employees",
  114. (CASE WHEN ((CASE WHEN (T3."type" = 1) THEN (T2."duration_minutes" / 60) ELSE (0) END) >= 6.1) THEN ((T4."break_end" - T4."break_start") * -1) ELSE (0) END) as "Pausenzeit_Anw_mehr_als_6",
  115. T4."validity_date" as "Validity Date_Break_times",
  116. T5."validity_date" as "Validity Date_Worktimes",
  117. T5."worktime_end" as "Worktime End_Worktimes",
  118. T5."worktime_start" as "Worktime Start_Worktimes",
  119. T5."work_duration" as "Work Duration_Worktimes",
  120. T5."dayofweek" as "Dayofweek_Worktimes",
  121. T4."break_end" - T4."break_start" as "Pause",
  122. ((od_hour(T2."end_time"))) + (((od_minute(T2."end_time"))) / 60) as "End_Times_Dezimal",
  123. ((od_minute(T2."end_time"))) / 60 as "End_Times_Minute_Dezimal",
  124. ((od_hour(T2."start_time"))) + (((od_minute(T2."start_time"))) / 60) as "Start_Times_Dezimal",
  125. ((od_minute(T2."start_time"))) / 60 as "Start_Times_Minute_Dezimal",
  126. (od_minute(T2."end_time")) as "End_Times_Minute",
  127. (od_hour(T2."end_time")) as "End_Times_Stunde",
  128. (od_minute(T2."start_time")) as "Start_Times_Minute",
  129. (od_hour(T2."start_time")) as "Start_Times_Stunde",
  130. T4."break_end" as "Break End_break_times",
  131. T4."break_start" as "Break Start_break_times",
  132. T4."dayofweek" as "Dayofweek_break_times",
  133. T4."is_latest_record" as "Is Latest Record_break_times",
  134. T1."break_time_registration" as "Break Time Registration_Employees",
  135. T1."is_flextime" as "Is Flextime_Employees",
  136. (datepart(weekday, T2."start_time")) as "Wochentag_Datum",
  137. T2."order_number" as "Order Number_Times",
  138. T2."duration_minutes" / 60 as "Ges. Std._",
  139. CASE WHEN (T2."type" = 2) THEN ('produktiv') ELSE ('unproduktiv') END as "Zeitkategorie",
  140. CASE WHEN (T3."type" = 1) THEN (T2."duration_minutes" / 60) ELSE (0) END as "Anwesenheit_",
  141. CASE WHEN (T3."type" = 2) THEN (T2."duration_minutes" / 60) ELSE (0) END as "produktiv_",
  142. (rtrim((((T1."employee_number"))))) + ' - ' + T1."name" as "Monteur",
  143. '0' + (rtrim((((T1."subsidiary"))))) as "Standort",
  144. T2."start_time" as "Start Time_Times",
  145. T3."description" as "Description_Time_Types",
  146. T3."type" as "Type_Time_Types",
  147. T2."duration_minutes" as "Duration Minutes_Times",
  148. T2."end_time" as "End Time_Times",
  149. T2."order_positions" as "Order Positions_Times",
  150. T2."type" as "Type_Times",
  151. T2."employee_number" as "Employee Number_Times",
  152. T1."leave_date" as "Leave Date_Employees",
  153. T1."termination_date" as "Termination Date_Employees",
  154. T1."employment_date" as "Employment Date_Employees",
  155. T1."salesman_number" as "Salesman Number_Employees",
  156. T1."mechanic_number" as "Mechanic Number_Employees",
  157. T1."initials" as "Initials_Employees",
  158. T1."name" as "Name_Employees"
  159. from "dbo"."employees" T1,
  160. "LOCOSOFT"."dbo"."employees_breaktimes" T4,
  161. "LOCOSOFT"."dbo"."employees_worktimes" T5,
  162. ("dbo"."times" T2 left outer join "dbo"."time_types" T3 on T2."type" = T3."type")
  163. where (T1."employee_number" = T2."employee_number") and (T1."employee_number" = T4."employee_number") and (T1."employee_number" = T5."employee_number")
  164. and ((((T2."type" = 1) and (((datepart(weekday, T2."start_time"))) = T4."dayofweek")) and (((datepart(weekday, T2."start_time"))) = T5."dayofweek")) and (T2."start_time" >= convert(datetime, '2017-01-01 00:00:00.000')))
  165. ) D2
  166. ) D1
  167. where (("Validity Date_Worktimes" = c56) and ("Validity Date_Break_times" = c57))
  168. -- order by "Employee Number_Employees" asc,"Start Time_Times" asc,"Order Number_Times" asc