-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalculate_employees working time.sql
57 lines (48 loc) · 2.43 KB
/
calculate_employees working time.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
SELECT p.nazwisko_imie AS [nazwisko imie],
typ_zdarzenia AS[wejcie],
datawejscia AS[data wejcia],
timewejscia AS[czas wejcia],
dataTime AS[data czas wejscia],
typ_zdarzenia1 AS[wyjcie],
datawyjscia AS[data wyjcia],
timewyjscia AS[czas wyjscia],
NextDate AS[data czas wyjscia],
CONVERT(varchar(2), DATEDIFF(minute, dataTime, NextDate)/60) + ':' + CONVERT(varchar(2), DATEDIFF(minute, dataTime, NextDate) % 60) as [czas pracy - godz:min],
CONVERT(varchar(2),DATEDIFF(minute, dataTime, NextDate)/60) as [czas pracy godz],
CONVERT(varchar(2),DATEDIFF(minute, dataTime, NextDate)%60) as [czas pracy min],
kd.nazwa_dzialu AS[nazwa dzia-u],
ke.nazwa_etatu AS[etat]
FROM(SELECT id_pracownik,
data as datawejscia,
(SELECT MIN(data)
FROM Table_kadry_import T2
WHERE T2.id_pracownik = T1.id_pracownik
AND T2.dataTime > T1.dataTime
AND T2.typ_zdarzenia > T1.typ_zdarzenia
) AS datawyjscia,
typ_zdarzenia,
(SELECT MIN(typ_zdarzenia)
FROM Table_kadry_import T2
WHERE T2.id_pracownik = T1.id_pracownik
AND T2.dataTime > T1.dataTime
AND T2.typ_zdarzenia > T1.typ_zdarzenia
) AS typ_zdarzenia1,
dataTime,
(SELECT MIN(dataTime)
FROM Table_kadry_import T2
WHERE T2.id_pracownik = T1.id_pracownik
AND T2.dataTime > T1.dataTime
AND T2.typ_zdarzenia > T1.typ_zdarzenia
) AS NextDate,
time as timewejscia,
(SELECT MIN(time)
FROM Table_kadry_import T2
WHERE T2.id_pracownik = T1.id_pracownik
AND T2.dataTime > T1.dataTime
AND T2.typ_zdarzenia > T1.typ_zdarzenia
) AS timewyjscia
FROM Table_kadry_import T1
) AS T
LEFT OUTER JOIN Table_kadry_pracownik p ON T.id_pracownik = p.id_pracownik
LEFT OUTER JOIN Table_kadry_dzial kd ON p.dzial = kd.id_dzial
LEFT OUTER JOIN Table_kadry_etat ke ON p.rodzaj_etatu = ke.id_etatu