Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Procedura i loop provjera

[es] :: MS SQL :: Procedura i loop provjera

[ Pregleda: 2100 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

elmagio
Kontroling i informatika

Član broj: 95249
Poruke: 164



+1 Profil

icon Procedura i loop provjera06.03.2016. u 19:23 - pre 98 meseci
Pozdrav,

Napravio sam jednu proceduru za "automatski" upis godine za godišnji odmor i sve mi radi dobro do dijela kada trebam upotrebiti IF ili CASE,
jedno od tog dvoje jer nikako da dođem do rješenja?

Dali netko zna može li se nekako ubaciti ovaj uvjet?

Code:


DECLARE 
  
@LoopCounter INT , 
@godina1_suma decimal(4,0),
@godina2_suma decimal(4,0),
@sifra_radnika varchar(20),
@godina decimal(4,0),
@broj_dana decimal(4,0),
@godina1_ukupno decimal(4,0)


SELECT @LoopCounter =  min([Broj reda]) FROM #godisnji_stavke


WHILE  (@LoopCounter IS NOT NULL)

BEGIN


--Ovdje dohvaćam podatke o unosu dana(broj sati 8 / 8 = 1)

SET @broj_dana = (SELECT...)

--Ovdje dohvaćam podataka u kojoj godini je unešen godišnji(primjer 02.02.2016 - dohvaćam 2016)

SET @godina = (SELECT...)

--Ovdje dohvaćam šifru radnika za koji je unešen godišnji

SET @sifra_radnika = (SELECT...)


--Ovdje dohvaćam podataka koliko radnik ima godišnjeg do dana u tom redu za jednu godinu ranije(u primjeru sam uzeo 02.02.2016.-godina 2016 što bi značilo koliko
--radnik ima godišnjeg iz 2015. do 02.02.2016?)

SET @godina1_suma = (SELECT...)


--Ovdje dohvaćam podataka koliko radnik ima godišnjeg do dana u tom redu za jednu godinu ranije(u primjeru sam uzeo 02.02.2016.-godina 2016 što bi značilo koliko
--radnik ima godišnjeg iz 2015. do 02.02.2016?)

SET @godina2_suma = (SELECT...)



---E sada mi nastaje problem ovdje
---Treba postaviti upit tako da mi provjerava kad je godišnji u minusu ili nije i upisujem godinu za taj godišnji?


Uvjet bi trebao biti ovakav:

Ako je @godina1_suma - @broj_dana >= 0 onda upiši @godina -1
Ako je @godina1_suma - @broj_dana < 0 onda provjeri 
dali je @godina2_suma - @broj_dana >= 0 i ako jest onda upiši @godina -2
a ako je @godina2_suma - @broj_dana < 0 onda upiši @godina



   SELECT @LoopCounter  = min([Broj reda]) FROM #godisnji_stavke
   WHERE [Broj reda] > @LoopCounter 
   
   
END


 
Odgovor na temu

[es] :: MS SQL :: Procedura i loop provjera

[ Pregleda: 2100 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.