Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Czas pracy grupowany godzinami

Napisany przez: kravi 6.06.2018, 07:29:25

Witam,
Mam taki problem. Jest sobie tabela "czas", w której zapisuje się data początku i końca czynności które wykonuje pracownik.
Tabela zawiera: pracownikID, czasStart, czasKoniec, czynosc. Czas zapisuje jako unixtime (int). Chciałbym uzyskać dane pogrupowane po godzinie i czynności - jako parametr zapytania podaję datę. Zwracamy godzinę, czas trwania czynności w tej godzinie i czynnosc.
Chciałbym otrzymać dane w formie:

Kod
#Godzina #czas (sek) #czynnosc
0        120         1
0        10          2
0        340         3
1        60          2
2        141         2
2        32          3
5        130         1
7        55          1
7        333         3

Nie wiem jak się za to zabrać, bo wszystko fajnie jeśli początek i koniec czynności są w obrębie jednej godziny, ale zwykle jest tak że czynność zaczyna się "za pięć", a kończy kilka minut po. Będę wdzięczny za sugestie ...
Pozdrawiam

Napisany przez: trueblue 6.06.2018, 09:49:11

Skoro się zaczyna za pięć, to znaczy, że należy nie do tej godziny, która będzie za pięć minut, tylko do aktualnej. W czym tu widzisz problem? Chcesz dzielić tą czynność na 5 minut dla jednej godziny i pozostały czas dla pozostałych godzin?



Napisany przez: kravi 6.06.2018, 12:20:27

Cytat(trueblue @ 6.06.2018, 10:49:11 ) *
Skoro się zaczyna za pięć, to znaczy, że należy nie do tej godziny, która będzie za pięć minut, tylko do aktualnej. W czym tu widzisz problem? Chcesz dzielić tą czynność na 5 minut dla jednej godziny i pozostały czas dla pozostałych godzin?

Przykładowo: pracownik zalogował się dziś o godz 7:50 - mam wpis w czasStart 1528271400, a wylogował się np. o godz. 9:30 - mam wpis w czasKoniec 1528277400, wykonał czynność o id=1. Jak to zrobić żeby jednym zapytaniem uzyskać wynik:
Kod
#Godzina #czas (sek) #czynnosc
7            600             1
8            3600            1
9            1800            1



Napisany przez: mmmmmmm 7.06.2018, 14:08:32

http://sqlfiddle.com/#!9/f018a5e/4

Napisany przez: kravi 8.06.2018, 10:05:29

Cytat(mmmmmmm @ 7.06.2018, 15:08:32 ) *
http://sqlfiddle.com/#!9/f018a5e/4

Dziękuję, właśnie o to mi mniej więcej chodziło - dopracuję sobie. Ważne że kierunek wskazałeś. Jeszcze raz dzięki.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)