Zeit_Stempelungen_Pausen.sql 7.4 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 c61 as "Employee Number_Employees",
  58. c106 as "Name_Employees",
  59. c105 as "Initials_Employees",
  60. c104 as "Mechanic Number_Employees",
  61. c103 as "Salesman Number_Employees",
  62. c102 as "Employment Date_Employees",
  63. c101 as "Termination Date_Employees",
  64. c100 as "Leave Date_Employees",
  65. c99 as "Employee Number_Times",
  66. c85 as "Order Number_Times",
  67. c92 as "Start Time_Times",
  68. c98 as "Type_Times",
  69. c97 as "Order Positions_Times",
  70. c96 as "End Time_Times",
  71. c95 as "Duration Minutes_Times",
  72. c94 as "Type_Time_Types",
  73. c93 as "Description_Time_Types",
  74. c92 as "Datum",
  75. '1' as "Hauptbetrieb",
  76. c91 as "Standort",
  77. c90 as "Monteur",
  78. c88 as "Anwesenheit_",
  79. c89 as "produktiv_",
  80. c88 as "unproduktiv_",
  81. c87 as "Zeitkategorie",
  82. '' as "Zeitkategorie2",
  83. c86 as "Ges. Std._",
  84. c85 as "Order Number",
  85. c84 as "Wochentag_Datum",
  86. c83 as "Is Flextime_Employees",
  87. c82 as "Break Time Registration_Employees",
  88. c81 as "Is Latest Record_break_times",
  89. c80 as "Dayofweek_break_times",
  90. c79 as "Break Start_break_times",
  91. c78 as "Break End_break_times",
  92. c69 as "Pause",
  93. c77 as "Start_Times_Stunde",
  94. c76 as "Start_Times_Minute",
  95. c75 as "End_Times_Stunde",
  96. c74 as "End_Times_Minute",
  97. c73 as "Start_Times_Minute_Dezimal",
  98. c72 as "Start_Times_Dezimal",
  99. c71 as "End_Times_Minute_Dezimal",
  100. c70 as "End_Times_Dezimal",
  101. c69 as "Pausenzeit_Stunde",
  102. c68 as "Dayofweek_Worktimes",
  103. c67 as "Work Duration_Worktimes",
  104. c66 as "Worktime Start_Worktimes",
  105. c65 as "Worktime End_Worktimes",
  106. c64 as "Validity Date_Worktimes",
  107. c63 as "Validity Date_Break_times",
  108. c62 as "Pausenzeit_Anw_mehr_als_6",
  109. c62 as "Anwesenheit",
  110. MAX(c64) OVER (partition by c61) as c56,
  111. MAX(c63) OVER (partition by c61) as c57
  112. from
  113. (select T1."employee_number" as c61,
  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 c62,
  115. T4."validity_date" as c63,
  116. T5."validity_date" as c64,
  117. T5."worktime_end" as c65,
  118. T5."worktime_start" as c66,
  119. T5."work_duration" as c67,
  120. T5."dayofweek" as c68,
  121. T4."break_end" - T4."break_start" as c69,
  122. ((datepart({hour},T2."end_time"))) + (((datepart({minute},T2."end_time"))) / 60) as c70,
  123. ((datepart({minute},T2."end_time"))) / 60 as c71,
  124. ((datepart({hour},T2."start_time"))) + (((datepart({minute},T2."start_time"))) / 60) as c72,
  125. ((datepart({minute},T2."start_time"))) / 60 as c73,
  126. (datepart({minute},T2."end_time")) as c74,
  127. (datepart({hour},T2."end_time")) as c75,
  128. (datepart({minute},T2."start_time")) as c76,
  129. (datepart({hour},T2."start_time")) as c77,
  130. T4."break_end" as c78,
  131. T4."break_start" as c79,
  132. T4."dayofweek" as c80,
  133. T4."is_latest_record" as c81,
  134. T1."break_time_registration" as c82,
  135. T1."is_flextime" as c83,
  136. (datepart({weekday},T2."start_time")) as c84,
  137. T2."order_number" as c85,
  138. T2."duration_minutes" / 60 as c86,
  139. CASE WHEN (T2."type" = 2) THEN ('produktiv') ELSE ('unproduktiv') END as c87,
  140. CASE WHEN (T3."type" = 1) THEN (T2."duration_minutes" / 60) ELSE (0) END as c88,
  141. CASE WHEN (T3."type" = 2) THEN (T2."duration_minutes" / 60) ELSE (0) END as c89,
  142. (rtrim((convert(varchar(50), T1."employee_number")))) + ' - ' + T1."name" as c90,
  143. '0' + (rtrim((convert(varchar(50), T1."subsidiary")))) as c91,
  144. T2."start_time" as c92,
  145. T3."description" as c93,
  146. T3."type" as c94,
  147. T2."duration_minutes" as c95,
  148. T2."end_time" as c96,
  149. T2."order_positions" as c97,
  150. T2."type" as c98,
  151. T2."employee_number" as c99,
  152. T1."leave_date" as c100,
  153. T1."termination_date" as c101,
  154. T1."employment_date" as c102,
  155. T1."salesman_number" as c103,
  156. T1."mechanic_number" as c104,
  157. T1."initials" as c105,
  158. T1."name" as c106
  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