Potrebno mi je da u SQL Server-u 2000 napravim proceduru npr. "get_time" (koju cu kasnije pozvati iz nekog programa)
Ta procedura treba da mi selektuje sve radnike iz tabele "RADNIK" i da mi za svakog radnika izracuna
ukupno provedeno vrijeme u firmi. Vrijeme ulaza i izlaza radnika u firmi je upisano u tabelu "LOG".
Code:
Ime tabele: LOG
id datum vrijeme ui si
--------------------------------------
00001 | 16.05.2006 | 18:23:01 | 1 | 0
00001 | 16.05.2006 | 18:28:21 | 0 | 1
00001 | 16.05.2006 | 18:33:11 | 1 | 0
00001 | 16.05.2006 | 18:45:51 | 0 | 0
00001 | 16.05.2006 | 18:53:35 | 1 | 0
00001 | 16.05.2006 | 19:00:51 | 1 | 0
Naziv,tip i opis kolona:
id char(5) - identifikaciona vrijednost radnika
datum char(10) - datum upisa rekorda
vrijeme char(8) - vrijeme upisa rekorda
ui bit - ako je 1, radnik je usao u firmu. 0, ako je izasao.
si bit - ako je 1, radnik je sluzbeno izasao iz firme. 0, nesluzben izlaz
Ime tabele: LOG
id datum vrijeme ui si
--------------------------------------
00001 | 16.05.2006 | 18:23:01 | 1 | 0
00001 | 16.05.2006 | 18:28:21 | 0 | 1
00001 | 16.05.2006 | 18:33:11 | 1 | 0
00001 | 16.05.2006 | 18:45:51 | 0 | 0
00001 | 16.05.2006 | 18:53:35 | 1 | 0
00001 | 16.05.2006 | 19:00:51 | 1 | 0
Naziv,tip i opis kolona:
id char(5) - identifikaciona vrijednost radnika
datum char(10) - datum upisa rekorda
vrijeme char(8) - vrijeme upisa rekorda
ui bit - ako je 1, radnik je usao u firmu. 0, ako je izasao.
si bit - ako je 1, radnik je sluzbeno izasao iz firme. 0, nesluzben izlaz
Znaci,
SQL upitom treba da selektujem sve rekorde u tabeli "LOG" cija je vrijednost id-a "00001"
(naravno u tabeli "LOG se nalaze svi rekordi od svih radnika") i da za tog radnika tj. "id" dobijem
ukupno provedeno vrijeme u firmi.
Treba uzeti u obzir sledece:
1. Ako je radnik sluzbeno izasao iz firme (ako je vrijednost "ui=0" i "si=1") racuna se da je u firmi,
tj. to vrijeme je dodato ukupnom vremenu provedenom u firmi.
Npr. prva 2 rekorda u primjeru tabele, vidimo da je radnik usao u 18:23:01 (ui=1,si=0) i potom
sluzbeno izasao u 18:28:21 (ui=0,si=1).
2. Ako je radnik nesluzbeno izasao (ui=0,si=0), vrijeme provedeno van firme nije dodano ukupnom
vremenu provedenom u firmi.
Npr. 3. i 4. rekord u tabeli, poslije ulaza radnik je nesluzbeno napustio firmu (ui=0,si=0).
3. U slucaju ako dva susjedna rekorda imaju istu vrijednost ui-a npr. 1,1 ili 0,0, ta dva rekorda
se ne uzimaju u obracunavanje posto je radnik pogresno registrovan (ne moze biti dva ulaza ili dva
izlaza u dvije registracije). Npr. rekord 5 i 6 u tabeli, ulaz u 18:53:35 pa opet ulaz u 19:00:51
IMA LI KO KAKVU IDEJU KAKO DA SE OVO RIJESI, DA LI JE MOGUCE SQL-OM ILI MORAM PROGRAMSKI???
NADAM SE DA SAM DOBRO POJASNIO :-)