sql i dni wolne

0

mam taki sobie problem: sa sobie 2 pola din i dout datetime.
gdzie din czas wejscia, dout czas wyjscia(robie cos tego typu dout-din i otrzymuje czas calkowity), chcialbym teraz zeby sql albo cokolwiek innego odliczalo mi z tego dni wolne(weekendy). uzywam postgresa
jak w ogóle do tego podejsc, bo nie mam zadnej koncepcji.
dziekuje za kazda porade

0

musisz zrobic tabelke z datami dni wolnych od pracy,
jesli zapytanie o jakąś datę zwróci rekord z tej tabelki tzn ze jest on wolny,
no i w petli

for r in to_number(to_char(din,'DD'))..to_number(to_char(dout,'DD')) loop 
  if r in [select data from tabela_dni_wolnych t
        where t.dzien = r ] <-- (może być odpalany cursor) then 
        jakiś_kod_lub_procedura;
  end if;
end loop;

po kazdym dniu.
No i musisz ową tabele aktualizować w miare na bierzący, albo wypełnić na 100 lat :)
Pozdrawiam.</b>

0

czyli rozumiem ze innego wyjscia NIE MA jak tylko zrobic tabele :-/ , ok dzieki bardzo... [browar]

// świetna stopka ;-) - Ł

0

E... Określenie "musisz" jest tu zdecydowanie na wyrost. Przecież Delphi jest wyposażone w ogrom wszelkiego typu funkcji dotyczących daty MIĘDZY INNYMI zwracającą numer dnia tygodnia. Od tego nie trzeba wiele, by stwierdzić, czy dzień ten należy do weekendu, czy nie.
P.S. Ewentualne inne święta też można obliczyć rozsądnie a nie wypisywać na chama za przeproszeniem do bazy.

0

Hmm, tym razem pozwolę się sobie nie zgodzić z przedmówcą.
Metoda z tabelą jest jedną z najlepszych, a dokładnie nie z tabelą a z kalendarzem jakkolwiek zrobionym (najprostszy to tabela z dniami wolnymi).
Wyniak to z tego że rózne zakłady pracy mają różnorodny system pracy, a co za tym idzie potrzebują zliczania godzin pracy w róznorodny sposób. Każdy kosztujący pow 1000PLN do obsługi kard ma zaimplementowany kalendarz, a nawet zestaw kalendarzy i każdemu człowiekowi można przypisać któryś z przygotowanych. Kalendarze rzecz jasna są tworzone automatycznie/przez dostawcę oprogramowania (fajna rzecz w ramach prezentu od usługodawcy wysyła się firmie cały zestaw danych na nowy rok - stawki podatkowe, odliczenia i mnóstwo mnóstwo stałych, kalendarze z uwzglednieniem polskich realiów - firma się cieszy bo dużo dostała, a wysyłającego mało to kosztuje, bo jeśli ma wielu klientów to koszt zrobienai tego zestawienia dzieli się na wszytskich i wychodzą grosze, a wszyscy zadowoleni, bo usługodawca dba o nich).
Przykład prosta firma piekarnicza. Potrzebują ludzi w administracji, piekarzy (ci to chodzą w rytmie przestawionym totalnie - a rozliczać ich trzeba, pracują od niedzielnego popołudni bo w poniedziałek wcześnei rano chleb musi być), oraz kierowców rozwożących chleb. Mamy już 3 kalendarze. Do tego polska specyfika - długi weekend - zaczyna się wariacja, administracja chce go mieć - odrabia w sobote, piekarze mają gorzej, kierowcy inaczej:) Do tego polskie święta a jest ich sporo, a na koneic piekarnia jest własnością dużej zagranicznej sieci i mają tam świętowany dzień patronacki np. 3 lipca. Co prawda nie kierowcy i piekarze, ale wszyscy którzy nie są neizbędni do pieczenai chleba w tym biurowi (z nimi łatwo bo majastałą pensję) i magazynierzy (ci są fizyczni a mąkę wydal iwcześniej) mają imprę integracyjną połaczoną z wynoszeniem pdo neibiosa własciciela...
Jeśli to ma być porządny program trzeba zrobić możliwości utworzenia własnego kalendarza - na podstawie dni wolnych itd, kadrowa musi mieć możliwośc zaznaczenia że piątek jest wolny a w sobotę przychodzimy odrobić bo był długi weekend.. itd itp Żaden automat nie zrobi etgo dobrze, moze podpowiadać ale musi być możliwość ingerencji. Czyli pomysł z tabelką nie jest głupi, nawet jeśl iw tej chwili nieco na wyrost. Jeśli oprogramowanie byłoby późneij rozwijane będzie jak znalazł bo nie zmeinią się mechanizmy i będzie trzeba dorobić moduł dla księgowej do ustawiania kalendarza, a na razie można automatem powkładać nieszczęsne soboty i niedziele do tej tabeli.
Andrzej Dabrowski

1 użytkowników online, w tym zalogowanych: 0, gości: 1