Zeit_2_Ryma.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. SELECT "Employee No",
  2. "Datum",
  3. "Department No_ori",
  4. "Time Account No",
  5. "Time Account Value",
  6. "Ta Class (general)" AS "Ta Class (general)",
  7. "Ta Class (statistics)" AS "Ta Class (statistics)",
  8. "Ta Class (absent Days)" AS "Ta Class (absent Days)",
  9. "Ta Class (time Processing)" AS "Ta Class (time Processing)",
  10. "Ta Class (individual)" AS "Ta Class (individual)",
  11. "Ta Class (employee Info)" AS "Ta Class (employee Info)",
  12. "Ta Class (vacation Reduction)" AS "Ta Class (vacation Reduction)",
  13. "Ta Formatting",
  14. "Generating Function",
  15. "Record Protected",
  16. "No",
  17. "Description",
  18. "Description 2",
  19. "Zeitdauer_ori",
  20. "gesamt Stunden",
  21. "krank",
  22. "Wehr- /Zivildienst",
  23. "Sonderurlaub",
  24. "Berufsschule",
  25. 0 AS "Innung Azubi",
  26. "Feiertag",
  27. "Schulung extern",
  28. "Urlaub",
  29. "W-fix Stunden",
  30. '1' AS "Hauptbetrieb_ID",
  31. "Standort",
  32. "First Name",
  33. "Last Name",
  34. "Monteur_Gruppe_ori",
  35. '' AS "Abteilung",
  36. '' AS "Order Number",
  37. "Monteur",
  38. "Zeitausgleich",
  39. "�berstunden",
  40. "Leaving Date",
  41. "Group No 1",
  42. "Group No 2",
  43. "Group No 3",
  44. "Tage Heute Leaving Date",
  45. "Monteur_Gruppe",
  46. "produktiv/unproduktiv",
  47. "Monatserster",
  48. "Monatsletzter",
  49. "Heute",
  50. "Datum Tagesbericht",
  51. "Employment Date_2",
  52. "Department No_2",
  53. "Datum_Monteurlisten",
  54. "Fehlzeiten genehm./ungenem.",
  55. "Activity Desc",
  56. "Monteur_Gruppe_2",
  57. "Standort" AS "Standort_ID",
  58. "Department No_2" AS "Department No",
  59. "Task Type Group",
  60. "Sollzeit",
  61. "abwesend",
  62. "Home Page 2",
  63. "Employment Date",
  64. SUM("Sollzeit") OVER (
  65. PARTITION BY "Datum",
  66. "Employee No"
  67. ) AS "Summe Sollzeit",
  68. CASE
  69. WHEN (
  70. ("Time Account No" IN ('670', '671', '672', '675', '676'))
  71. AND (
  72. (
  73. SUM("Sollzeit") OVER (
  74. PARTITION BY "Datum",
  75. "Employee No"
  76. )
  77. ) = 0
  78. )
  79. )
  80. THEN (0)
  81. ELSE (("Zeitdauer_ori"))
  82. END AS "Zeitdauer"
  83. FROM (
  84. SELECT T1."Employee No_" AS "Employee No",
  85. (
  86. (
  87. CASE
  88. WHEN (
  89. (T1."Employee No_" IN ('0382', '0378'))
  90. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  91. )
  92. THEN (convert(DATE, '1900-01-01'))
  93. ELSE (T1."Current Date")
  94. END
  95. )
  96. ) AS "Datum",
  97. (convert(FLOAT, T1."Time Account Value")) AS "Zeitdauer_ori",
  98. T1."Time Account No_" AS "Time Account No",
  99. (convert(VARCHAR(50), year(T4."Employment Date")) + '-' + convert(VARCHAR(50), month(T4."Employment Date")) + '-' + convert(VARCHAR(50), day(T4."Employment Date"))) AS "Employment Date",
  100. T4."Home Page 2" AS "Home Page 2",
  101. CASE
  102. WHEN (T1."Time Account No_" BETWEEN '299' AND '450')
  103. THEN (((convert(FLOAT, T1."Time Account Value"))))
  104. ELSE (0)
  105. END AS "abwesend",
  106. CASE
  107. WHEN (T1."Time Account No_" = '1200')
  108. THEN (((convert(FLOAT, T1."Time Account Value"))))
  109. ELSE (0)
  110. END AS "Sollzeit",
  111. T4."Task Type Group" AS "Task Type Group",
  112. T3."Department No_" AS "Department No_2",
  113. (left(T3."Department No_", 2)) AS "Standort",
  114. CASE
  115. WHEN (
  116. (T3."Leaving Date" < (getdate()))
  117. AND (T3."Leaving Date" <> convert(DATETIME, '1753-01-01 00:00:00.000'))
  118. )
  119. THEN ('ausgetretene Mitarbeiter')
  120. ELSE (T4."Function Code")
  121. END AS "Monteur_Gruppe_2",
  122. (rtrim((((T2."No_"))))) + ' - ' + T2."Description" AS "Activity Desc",
  123. CASE
  124. WHEN (T2."No_" IN (300, 301))
  125. THEN (((convert(FLOAT, T1."Time Account Value"))))
  126. ELSE (0)
  127. END AS "Fehlzeiten genehm./ungenem.",
  128. CASE
  129. WHEN (
  130. (
  131. - 1 * datediff(day, (getdate()), (
  132. (
  133. (
  134. CASE
  135. WHEN (
  136. (T1."Employee No_" IN ('0382', '0378'))
  137. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  138. )
  139. THEN (convert(DATE, '1900-01-01'))
  140. ELSE (T1."Current Date")
  141. END
  142. )
  143. )
  144. ))
  145. ) <= 93
  146. )
  147. THEN (
  148. (
  149. (
  150. (
  151. CASE
  152. WHEN (
  153. (T1."Employee No_" IN ('0382', '0378'))
  154. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  155. )
  156. THEN (convert(DATE, '1900-01-01'))
  157. ELSE (T1."Current Date")
  158. END
  159. )
  160. )
  161. )
  162. )
  163. ELSE NULL
  164. END AS "Datum_Monteurlisten",
  165. T4."Employment Date" AS "Employment Date_2",
  166. CASE
  167. WHEN (
  168. ((getdate()) - 1) BETWEEN (
  169. (
  170. convert(DATETIME, (
  171. (
  172. (
  173. CASE
  174. WHEN (
  175. (T1."Employee No_" IN ('0382', '0378'))
  176. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  177. )
  178. THEN (convert(DATE, '1900-01-01'))
  179. ELSE (T1."Current Date")
  180. END
  181. )
  182. )
  183. ) - cinterval(day((
  184. (
  185. (
  186. CASE
  187. WHEN (
  188. (T1."Employee No_" IN ('0382', '0378'))
  189. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  190. )
  191. THEN (convert(DATE, '1900-01-01'))
  192. ELSE (T1."Current Date")
  193. END
  194. )
  195. )
  196. )) - 1))
  197. )
  198. ) AND (
  199. (
  200. convert(DATETIME, eomonth((
  201. (
  202. (
  203. (
  204. CASE
  205. WHEN (
  206. (T1."Employee No_" IN ('0382', '0378'))
  207. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  208. )
  209. THEN (convert(DATE, '1900-01-01'))
  210. ELSE (T1."Current Date")
  211. END
  212. )
  213. )
  214. )
  215. )))
  216. )
  217. )
  218. )
  219. THEN (
  220. (
  221. (
  222. (
  223. CASE
  224. WHEN (
  225. (T1."Employee No_" IN ('0382', '0378'))
  226. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  227. )
  228. THEN (convert(DATE, '1900-01-01'))
  229. ELSE (T1."Current Date")
  230. END
  231. )
  232. )
  233. )
  234. )
  235. ELSE NULL
  236. END AS "Datum Tagesbericht",
  237. (getdate()) - 1 AS "Heute",
  238. (
  239. convert(DATETIME, eomonth((
  240. (
  241. (
  242. (
  243. CASE
  244. WHEN (
  245. (T1."Employee No_" IN ('0382', '0378'))
  246. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  247. )
  248. THEN (convert(DATE, '1900-01-01'))
  249. ELSE (T1."Current Date")
  250. END
  251. )
  252. )
  253. )
  254. )))
  255. ) AS "Monatsletzter",
  256. (
  257. convert(DATETIME, (
  258. (
  259. (
  260. CASE
  261. WHEN (
  262. (T1."Employee No_" IN ('0382', '0378'))
  263. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  264. )
  265. THEN (convert(DATE, '1900-01-01'))
  266. ELSE (T1."Current Date")
  267. END
  268. )
  269. )
  270. ) - cinterval(day((
  271. (
  272. (
  273. CASE
  274. WHEN (
  275. (T1."Employee No_" IN ('0382', '0378'))
  276. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  277. )
  278. THEN (convert(DATE, '1900-01-01'))
  279. ELSE (T1."Current Date")
  280. END
  281. )
  282. )
  283. )) - 1))
  284. ) AS "Monatserster",
  285. CASE
  286. WHEN (T4."Function Code" IN ('AZUBI', 'MECH', 'SERVHILF', 'SERVTECH', 'WAGENPFLEG', 'WERKMEI'))
  287. THEN ('prod. Personal')
  288. ELSE ('unprod. Personal')
  289. END AS "produktiv/unproduktiv",
  290. (
  291. (
  292. CASE
  293. WHEN (T4."Function Code" IN ('AZUBI', 'MECH', 'SERVHILF', 'SERVTECH', 'WAGENPFLEG', 'WERKMEI'))
  294. THEN ('prod. Personal')
  295. ELSE ('unprod. Personal')
  296. END
  297. )
  298. ) AS "Monteur_Gruppe",
  299. (- 1 * datediff(day, (getdate()), T3."Leaving Date")) AS "Tage Heute Leaving Date",
  300. T3."Group No_ 3" AS "Group No 3",
  301. T3."Group No_ 2" AS "Group No 2",
  302. T3."Group No_ 1" AS "Group No 1",
  303. T3."Leaving Date" AS "Leaving Date",
  304. CASE
  305. WHEN (T2."No_" IN (200))
  306. THEN (((convert(FLOAT, T1."Time Account Value"))))
  307. ELSE (0)
  308. END AS "�berstunden",
  309. CASE
  310. WHEN (T2."No_" IN (378))
  311. THEN (((convert(FLOAT, T1."Time Account Value"))))
  312. ELSE (0)
  313. END AS "Zeitausgleich",
  314. T4."First Name" + ' ' + T4."Last Name" AS "Monteur",
  315. T4."Function Code" AS "Monteur_Gruppe_ori",
  316. T4."Last Name" AS "Last Name",
  317. T4."First Name" AS "First Name",
  318. (
  319. CASE
  320. WHEN (T2."No_" IN (370, 371, 372))
  321. THEN (((convert(FLOAT, T1."Time Account Value"))))
  322. ELSE (0)
  323. END
  324. ) + (
  325. CASE
  326. WHEN (T2."No_" = 379)
  327. THEN (((convert(FLOAT, T1."Time Account Value"))))
  328. ELSE (0)
  329. END
  330. ) + (
  331. CASE
  332. WHEN (T2."No_" = 352)
  333. THEN (((convert(FLOAT, T1."Time Account Value"))))
  334. ELSE (0)
  335. END
  336. ) + (
  337. CASE
  338. WHEN (T2."No_" = 354)
  339. THEN (((convert(FLOAT, T1."Time Account Value"))))
  340. ELSE (0)
  341. END
  342. ) + 0 + (
  343. CASE
  344. WHEN (T2."No_" = 450)
  345. THEN (((convert(FLOAT, T1."Time Account Value"))))
  346. ELSE (0)
  347. END
  348. ) + (
  349. CASE
  350. WHEN (T2."No_" = 355)
  351. THEN (((convert(FLOAT, T1."Time Account Value"))))
  352. ELSE (0)
  353. END
  354. ) + (
  355. CASE
  356. WHEN (T2."No_" IN (350, 351))
  357. THEN (((convert(FLOAT, T1."Time Account Value"))))
  358. ELSE (0)
  359. END
  360. ) + (
  361. CASE
  362. WHEN (T2."No_" IN (300, 301))
  363. THEN (((convert(FLOAT, T1."Time Account Value"))))
  364. ELSE (0)
  365. END
  366. ) AS "W-fix Stunden",
  367. CASE
  368. WHEN (T2."No_" IN (350, 351))
  369. THEN (((convert(FLOAT, T1."Time Account Value"))))
  370. ELSE (0)
  371. END AS "Urlaub",
  372. CASE
  373. WHEN (T2."No_" = 355)
  374. THEN (((convert(FLOAT, T1."Time Account Value"))))
  375. ELSE (0)
  376. END AS "Schulung extern",
  377. CASE
  378. WHEN (T2."No_" = 450)
  379. THEN (((convert(FLOAT, T1."Time Account Value"))))
  380. ELSE (0)
  381. END AS "Feiertag",
  382. CASE
  383. WHEN (T2."No_" = 354)
  384. THEN (((convert(FLOAT, T1."Time Account Value"))))
  385. ELSE (0)
  386. END AS "Berufsschule",
  387. CASE
  388. WHEN (T2."No_" = 352)
  389. THEN (((convert(FLOAT, T1."Time Account Value"))))
  390. ELSE (0)
  391. END AS "Sonderurlaub",
  392. CASE
  393. WHEN (T2."No_" = 379)
  394. THEN (((convert(FLOAT, T1."Time Account Value"))))
  395. ELSE (0)
  396. END AS "Wehr- /Zivildienst",
  397. CASE
  398. WHEN (T2."No_" IN (370, 371, 372))
  399. THEN (((convert(FLOAT, T1."Time Account Value"))))
  400. ELSE (0)
  401. END AS "krank",
  402. CASE
  403. WHEN (T2."No_" IN (100))
  404. THEN (((convert(FLOAT, T1."Time Account Value"))))
  405. ELSE (0)
  406. END AS "gesamt Stunden",
  407. T2."Description 2" AS "Description 2",
  408. T2."Description" AS "Description",
  409. T2."No_" AS "No",
  410. T1."Record protected" AS "Record Protected",
  411. T1."Generating Function" AS "Generating Function",
  412. T1."TA Formatting" AS "Ta Formatting",
  413. T1."TA Class (Vacation Reduction)" AS "Ta Class (vacation Reduction)",
  414. T1."TA Class (Employee Info)" AS "Ta Class (employee Info)",
  415. T1."TA Class (Individual)" AS "Ta Class (individual)",
  416. T1."TA Class (Time Processing)" AS "Ta Class (time Processing)",
  417. T1."TA Class (Absent Days)" AS "Ta Class (absent Days)",
  418. T1."TA Class (Statistics)" AS "Ta Class (statistics)",
  419. T1."TA Class (General)" AS "Ta Class (general)",
  420. T1."Time Account Value" AS "Time Account Value",
  421. T1."Department No_" AS "Department No_ori"
  422. FROM "Gottstein7x"."dbo"."AH Gottstein$Employee_T" T3,
  423. (
  424. (
  425. "Gottstein7x"."dbo"."AH Gottstein$Time Entry_T" T1 LEFT JOIN "Gottstein7x"."dbo"."AH Gottstein$Time Account_T" T2 ON T1."Time Account No_" = (((T2."No_")))
  426. ) LEFT JOIN "Gottstein7x"."dbo"."AH Gottstein$Employee" T4 ON T1."Employee No_" = T4."No_"
  427. )
  428. WHERE (T4."No_" = T3."No_")
  429. AND (
  430. (
  431. (
  432. (
  433. (
  434. (
  435. (
  436. (
  437. CASE
  438. WHEN (
  439. (T1."Employee No_" IN ('0382', '0378'))
  440. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  441. )
  442. THEN (convert(DATE, '1900-01-01'))
  443. ELSE (T1."Current Date")
  444. END
  445. )
  446. )
  447. ) >= T4."Employment Date"
  448. )
  449. AND (
  450. (
  451. (
  452. (
  453. CASE
  454. WHEN (
  455. (T1."Employee No_" IN ('0382', '0378'))
  456. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  457. )
  458. THEN (convert(DATE, '1900-01-01'))
  459. ELSE (T1."Current Date")
  460. END
  461. )
  462. )
  463. ) >= convert(DATE, '2022-01-01')
  464. )
  465. )
  466. AND (
  467. (
  468. (
  469. (
  470. CASE
  471. WHEN (
  472. (T1."Employee No_" IN ('0382', '0378'))
  473. AND (T1."Current Date" <= convert(DATETIME, '2019-02-22 00:00:00.000'))
  474. )
  475. THEN (convert(DATE, '1900-01-01'))
  476. ELSE (T1."Current Date")
  477. END
  478. )
  479. )
  480. ) <= (getdate())
  481. )
  482. )
  483. AND (
  484. (
  485. CASE
  486. WHEN (T4."Function Code" IN ('AZUBI', 'MECH', 'SERVHILF', 'SERVTECH', 'WAGENPFLEG', 'WERKMEI'))
  487. THEN ('prod. Personal')
  488. ELSE ('unprod. Personal')
  489. END
  490. ) IN ('prod. Personal', 'unprod. Personal')
  491. )
  492. )
  493. AND (
  494. (
  495. (
  496. (T1."Time Account No_" BETWEEN '299' AND '450')
  497. OR (T1."Time Account No_" = '1200')
  498. )
  499. OR (T1."Time Account No_" = '1410')
  500. )
  501. OR (T1."Time Account No_" IN ('670', '671', '672', '675', '676'))
  502. )
  503. )
  504. -- order by "Datum" asc,"Employee No" asc
  505. ) D1