Sule99 je dao logicki ispravnu ideju. Medjutim, za istu logiku, resenje preko kverija bilo bi bolje. Zasto? Resenje bez kverija podrazumeva programiranje, sto verovatno nije jaca strana za DenkoB.
Evo Suletove logike napisane tako da se moze upotrebiti u kveriju. Neka postoji tabela (Radnik, OdradjeniSati). Mozemo napisati ovakav kveri:
Code:
SELECT Radnik, OdradjeniSati
iif(Odradjenisati>200,OdradjeniSati-200,0) AS PrekovremeniRad
, iif(Odradjenisati<=200,OdradjeniSati,200) AS RedovanRad
Objasnjenje:
iif(Odradjenisati>200,OdradjeniSati-200,0) AS PrekovremeniRad znaci:
AKo je (OdradjeniSati>200), onda je prekovremeni rad = OdradjeniSati-200
Ako (OdradjeniSati nije vece od 200), onda je prekovremeni rad = 0
iif(Odradjenisati<=200,OdradjeniSati,200) AS RedovanRad znaci:
AKo je (Odradjenisati manje ili jednako 200), onda se placa kao redovanm rad ono sto pise u OdradjeniSati
Ako (NIJE Odradjenisati manje ili jednako 200), onda se placa 200 kao redovan rad
Resenje je ovako jednostavno jer je i pitanje postavljeno u jednostavnom obliku. Pre nekoliko meseci bilo je pitanje na forumu o izracunavanju plata, ali mnogo komplikovanije. Trazilo se da se uzme u obzir prekovremeni rad, nocni rad, praznici, bolovanja, neplacena odsustva, fgodisnji odmori i slicno. Naravno da je resenje ispalo mnogo komplikovanije nego ovde, sa komplikovanom strukturom baze podataka, mnogo tabela i tako dalje.
Ja ne umme da andjem tu temu. Znam da je pitanje stiglo negde iz Makedonije, mozda neko ume da pronadje temu? Ovo zato sto se lako moze desiti da DenkoB za koji dan sazna da njegov problem i nije tako jednostavan kako se cini u ovom momentu. Nadajmo se da ce stati na ovome, redovni i prekovremeni sati.
Nadam se da je pomoglo.