[ sojic @ 04.09.2007. 12:52 ] @
Dali mogu da koristim WHERE u Stored procedure? Evo konkretno o cemu se radi: Imam tabelu korisnika i tabelu placanja. Ponekad, korisnik plati unapred, tako da ja njega zaduzim i razduzim. Ali, svakog prvog u mesecu, radim "grupno zadizivanje". Znaci, zaduzim sve korisnike za taj i taj mesec. Kako da napravim da ako je vec zaduzen da preskoci INSERT naredbu. Evo procedure: Legenda: _Mesec (ulazni parametar za koji mesec zaduzavam) _userId (Id korisnika) _iznos (koliko treba da plati) _aktiven (dali je aktivan ili nije) Code: PROCEDURE `pzadolziInternet`(_Mesec INT) BEGIN DECLARE done INT DEFAULT 0; DECLARE _userId, _iznos, _aktiven BigInt(20); DECLARE lista CURSOR FOR SELECT id, internet, aktiven FROM vpretplatnici; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN lista; REPEAT FETCH lista INTO _userId, _iznos, _aktiven; IF NOT done THEN IF _aktiven=1 THEN IF _iznos>0 THEN INSERT INTO pretplata (mesec, pretplatnik, tip, iznos) VALUES (concat(year(now()),'-',_Mesec,'-01'),_userId, 'i', _iznos); END IF; END IF; END IF; UNTIL done END REPEAT; CLOSE lista; END |