Zeit_Stempelungen_Pausen.sql 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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. (
  115. CASE
  116. WHEN (
  117. (
  118. CASE
  119. WHEN (T3."type" = 1)
  120. THEN (T2."duration_minutes" / 60)
  121. ELSE (0)
  122. END
  123. ) >= 6.1
  124. )
  125. THEN ((T4."break_end" - T4."break_start") * - 1)
  126. ELSE (0)
  127. END
  128. ) AS "Pausenzeit_Anw_mehr_als_6",
  129. T4."validity_date" AS "Validity Date_Break_times",
  130. T5."validity_date" AS "Validity Date_Worktimes",
  131. T5."worktime_end" AS "Worktime End_Worktimes",
  132. T5."worktime_start" AS "Worktime Start_Worktimes",
  133. T5."work_duration" AS "Work Duration_Worktimes",
  134. T5."dayofweek" AS "Dayofweek_Worktimes",
  135. T4."break_end" - T4."break_start" AS "Pause",
  136. ((od_hour(T2."end_time"))) + (((od_minute(T2."end_time"))) / 60) AS "End_Times_Dezimal",
  137. ((od_minute(T2."end_time"))) / 60 AS "End_Times_Minute_Dezimal",
  138. ((od_hour(T2."start_time"))) + (((od_minute(T2."start_time"))) / 60) AS "Start_Times_Dezimal",
  139. ((od_minute(T2."start_time"))) / 60 AS "Start_Times_Minute_Dezimal",
  140. (od_minute(T2."end_time")) AS "End_Times_Minute",
  141. (od_hour(T2."end_time")) AS "End_Times_Stunde",
  142. (od_minute(T2."start_time")) AS "Start_Times_Minute",
  143. (od_hour(T2."start_time")) AS "Start_Times_Stunde",
  144. T4."break_end" AS "Break End_break_times",
  145. T4."break_start" AS "Break Start_break_times",
  146. T4."dayofweek" AS "Dayofweek_break_times",
  147. T4."is_latest_record" AS "Is Latest Record_break_times",
  148. T1."break_time_registration" AS "Break Time Registration_Employees",
  149. T1."is_flextime" AS "Is Flextime_Employees",
  150. (datepart(weekday, T2."start_time")) AS "Wochentag_Datum",
  151. T2."order_number" AS "Order Number_Times",
  152. T2."duration_minutes" / 60 AS "Ges. Std._",
  153. CASE
  154. WHEN (T2."type" = 2)
  155. THEN ('produktiv')
  156. ELSE ('unproduktiv')
  157. END AS "Zeitkategorie",
  158. CASE
  159. WHEN (T3."type" = 1)
  160. THEN (T2."duration_minutes" / 60)
  161. ELSE (0)
  162. END AS "Anwesenheit_",
  163. CASE
  164. WHEN (T3."type" = 2)
  165. THEN (T2."duration_minutes" / 60)
  166. ELSE (0)
  167. END AS "produktiv_",
  168. (rtrim((((T1."employee_number"))))) + ' - ' + T1."name" AS "Monteur",
  169. '0' + (rtrim((((T1."subsidiary"))))) AS "Standort",
  170. T2."start_time" AS "Start Time_Times",
  171. T3."description" AS "Description_Time_Types",
  172. T3."type" AS "Type_Time_Types",
  173. T2."duration_minutes" AS "Duration Minutes_Times",
  174. T2."end_time" AS "End Time_Times",
  175. T2."order_positions" AS "Order Positions_Times",
  176. T2."type" AS "Type_Times",
  177. T2."employee_number" AS "Employee Number_Times",
  178. T1."leave_date" AS "Leave Date_Employees",
  179. T1."termination_date" AS "Termination Date_Employees",
  180. T1."employment_date" AS "Employment Date_Employees",
  181. T1."salesman_number" AS "Salesman Number_Employees",
  182. T1."mechanic_number" AS "Mechanic Number_Employees",
  183. T1."initials" AS "Initials_Employees",
  184. T1."name" AS "Name_Employees"
  185. FROM "dbo"."employees" T1,
  186. "LOCOSOFT"."dbo"."employees_breaktimes" T4,
  187. "LOCOSOFT"."dbo"."employees_worktimes" T5,
  188. (
  189. "dbo"."times" T2 LEFT JOIN "dbo"."time_types" T3 ON T2."type" = T3."type"
  190. )
  191. WHERE (T1."employee_number" = T2."employee_number")
  192. AND (T1."employee_number" = T4."employee_number")
  193. AND (T1."employee_number" = T5."employee_number")
  194. AND (
  195. (
  196. (
  197. (T2."type" = 1)
  198. AND (((datepart(weekday, T2."start_time"))) = T4."dayofweek")
  199. )
  200. AND (((datepart(weekday, T2."start_time"))) = T5."dayofweek")
  201. )
  202. AND (T2."start_time" >= convert(DATETIME, '2017-01-01 00:00:00.000'))
  203. )
  204. ) D2
  205. ) D1
  206. WHERE (
  207. ("Validity Date_Worktimes" = c56)
  208. AND ("Validity Date_Break_times" = c57)
  209. )
  210. -- order by "Employee Number_Employees" asc,"Start Time_Times" asc,"Order Number_Times" asc