Witam. Silnik firebird. Napisałem takie zapytanie, które aktualizuje czas pracy niektórych pracowników.
update PL_ECP_EWCP
set RZECZ_GODZINA_OD = '07:30', RZECZ_GODZINA_DO = '15:30', RZECZYWISTY_CZAS_PRACY = '08:00'
where idetatu in (222, 215, 216, 217)
and (ROK = 2020) and (GODZINA_OD <> '00:00');
A tak wygląda select po zastosowaniu tego zapytania:
Działa ono w ten sposób, że wypełnia rzeczywisty czas pracy tych pracowników godzinami 07:30-15:30, jeśli pole "godzina od" jest różne od 0. Niestety otrzymałem informację, że to zapytanie musi być bardziej optymalne, poprzez wykorzystanie kolumny id tegoż czasu pracy (na screenie to jest pierwsza kolumna). I teraz chodzi o to, żeby napisać takie zapytanie, które również zaktualizuje czas dla tych samych pracowników i również na rok 2020, ale zrobi to np. dla tego pracownika na screenie (id etatu = 215) z wyłączeniem sobót i niedziel. Czyli pierwsza sobota w roku, to był 04.01.2020 r. i dla tego dnia id = 40565. I taka pętla by dodawała do każdego id + 7, to by wszystkie soboty w roku były załatwione. Taka sama zasada dotyczy niedziel; id = 40566. Z góry dzięki za pomoc