SQL příkaz k databázi v MySQL – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

SQL příkaz k databázi v MySQL – MySQL – Fórum – Programujte.comSQL příkaz k databázi v MySQL – MySQL – Fórum – Programujte.com

 

Jano
~ Anonymní uživatel
85 příspěvků
25. 4. 2019   #1
-
0
-

Dobrý den, prosím o radu jak by měl vypadat SQL příkaz na zjištění přesčasů / podčasů k aktuální databázi (viz. obrázek).

Napadá mě tento postup, který nevím jak bych měl správně zapsat v SQL příkazu(ech). 
datum_a_cas v tabulce Pruchod oříznout nějakou agregační funkcí a získat jenom TIME a TIME při id_duvod 2 (odchod) odečíst zase ořízlý TIME od datum_a_cas při id_duvod 1 (příchod)
a od toho celého potom odečíst (cas_do mínus cas_od v tabulce ocekavana_prac_doba )

Připojen obrázek.

Nahlásit jako SPAM
IP: 89.203.150.–
MilanL+1
Grafoman
26. 4. 2019   #2
-
0
-

#1 Jano
ahoj, no ono to právě není až tak jednoduché kvůli nočním, kdy je třeba párovat přes 2 dny, výhodou v tomto případě je pokud jsou průchody rozlišené na Příchod a Odchod. Proto se to v konečné fázi řeší programově, program si z DB vytáhne režim člověka + všechny průchody a pak to přepočítává.

Řešení čistě v SQL dotazu by bylo dost náročné, tam by asi bylo potřeba použít uložené procedury.

V první řadě potřebuješ dát dohromady odpovídající páry Příchod-Odchod, z nich pak rozdílem získat odpracovaný čas (není třeba ořezávat na TIME rozdíl datetime ti dá stejný výsledek jako, když extrahuješ nejdřív časy a pak je odečteš) a pak je ještě srovnat s definicí pracovní doby.

BTW co má být v té tabulce Den jsem nepochopil pokud je účelem buď definice pracovní doby pro jednotlivé dny nebo platnost pracovní doby pro daného člověka, měla by to být křížová tabulka  umístěná mezi osobou a Očekávanou pracovní dobou, V tabulce Osoby zrušit ID očekávané pracovní doby, do tabulky Den přidat ID osoby a svázat s Osobou, podobně jako jsou u průchodů vazby Osoba a Duvod, tak v Den budou vazby Osoba a Očekávaná prac. doba.

Nahlásit jako SPAM
IP: 91.139.9.–
MilanL+1
Grafoman
26. 4. 2019   #3
-
0
-

To programové řešení dokáže pak správně reagovat i na některé nestandardní situace, kdy u člověka z nějakého důvodu chybí průchod, např. služební pochůzka, ze které se již nevrací do firmy, nebo odchod s definovanou dobou navíc, třeba jako jsme to měli v mé bývalé práci, kde byl důvod "Pošta" - typ odchodu, kde se pak do pracovní doby připočítávalo 20 minut.

Pokud se o tom budeš chtít podrobněji pobavit, pošli mi kontakt, mám dobrou náladu, tak bych byl ochoten se ti dnes po práci a o víkendu trošku věnovat.

Nahlásit jako SPAM
IP: 91.139.9.–
Jano
~ Anonymní uživatel
85 příspěvků
26. 4. 2019   #4
-
0
-

kontakt: jann789456123@seznam.cz

Nahlásit jako SPAM
IP: 89.203.150.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

SQL příkaz — založil Montezo

Nefunguje SQL príkaz — založil Speeder

SQL příkaz se neprovede — založil Ondrřej Cháb

Nestandartní SQL příkaz — založil Bryant

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý