Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czas pracy grupowany godzinami
kravi
post 6.06.2018, 07:29:25
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 17.03.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 6.06.2018, 09:49:11
Post #2





Grupa: Zarejestrowani
Postów: 5 192
Pomógł: 1439
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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?


Go to the top of the page
+Quote Post
kravi
post 6.06.2018, 12:20:27
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 17.03.2008

Ostrzeżenie: (0%)
-----


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


Go to the top of the page
+Quote Post
mmmmmmm
post 7.06.2018, 14:08:32
Post #4





Grupa: Zarejestrowani
Postów: 1 397
Pomógł: 306
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


http://sqlfiddle.com/#!9/f018a5e/4
Go to the top of the page
+Quote Post
kravi
post 8.06.2018, 10:05:29
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 17.03.2008

Ostrzeżenie: (0%)
-----


Cytat(mmmmmmm @ 7.06.2018, 15:08:32 ) *

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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.10.2018 - 16:21