![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 14.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zmagam się z problemem wyliczenia ilości czasu, w którym pracownik znajduje się w budynku. Excel z całym dobrodziejstwem tabel przestawnych nie daje rady. Próbuje więc to rozegrać za pomoca SQLa (MySQL). Dane w tabela wyglądają m/w tak: nazwisko | imie | bramka | data | godzina Kowalski | Jan | WEJSCIE | 2011-02-02 | 07:30:20 Kowalski | Jan | WYJSCIE | 2011-02-02 | 09:22:23 Kowalski | Jan | WEJSCIE | 2011-02-02 | 09:35:43 Kowalski | Jan | WYJSCIE | 2011-02-02 | 16:12:15 Nowak | Marek | WEJSCIE | 2011-02-02 | 09:20:23 Nowak | Marek | WYJSCIE | 2011-02-02 | 17:30:12 Kowalski | Jan | WEJSCIE | 2011-02-03 | 07:29:32 Kowalski | Jan | WYJSCIE | 2011-02-03 | 09:23:33 itd. Wszystko by było w porządku, gdyby ludzie przychodzili do pracy i wychodzili po jej skończeniu:
ale nie... oni muszą jeszcze wyłazić w ciągu dnia na papieroski i w innych celach ![]() Stąd prośba o pomoc, jak skontruował zapytanie aby można było wyliczyć tzw. efektywny czas pracy, czyli ten okres kiedy pracownik faktycznie przebywa w budynku. Efektem końcowym mogła by być taka tabela: nazwisko | imie | data | czas_pracy Kowalski | Jan | 2011-02-02 | 08:30 Kowalski | Jan | 2011-02-03 | 07:40 Nowak | Marek | 2011-02-02 | 08:10 Jeśli ktoś ma pomysł na inne niż SQLowe rozwiązanie tego problemu, to też chętnie się dowiem. Z gory dziękuję za wszelkie sugestie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
SQLowe rozwiązanie to na przykład może być policzenie sumy godzin wyjść i odjęcie od tego sumy godzin wejść każdego dnia, dla każdego pracownika. Wygląda to tak:
Tyle że jak będziesz chciał jeszcze uwzględnić pracowników, którzy weszli, ale jeszcze nie zdążyli wyjść, albo takich, którzy zostali w pracy do północy, to skończysz z zapytaniem na 100 linijek ![]() Prostsze rozwiązanie to pobranie danych z bazy posortowanych po nazwisku, imieniu dacie i godzinie i sumowanie w pętli różnic czasów dwóch kolejnych wierszy. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.05.2025 - 06:29 |