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:
SELECT nazwisko, imie, bramka, DATA TIME_FORMAT(TIMEDIFF(MAX(godzina),MIN(godzina)), '%H:%i') AS czas_pracy FROM `tab` GROUP BY nazwisko, DATA
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.