Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Napisati funkciju koja će za svakog radnika u novostvoreni atribut satiNaNalozima
- računati kolika je ukupna suma ostvarenih sati rada za tog radnika po svim nalozima.
- Funkcija vraća razliku između broja dohvaćenih i broja obrađenih zapisa. Obavezno je koristiti kursore.*/
- ALTER TABLE radnik ADD COLUMN satiNaNalozima INT;
- DROP FUNCTION IF EXISTS sumaSati;
- DELIMITER //
- CREATE FUNCTION sumaSati()
- RETURNS INT
- DETERMINISTIC
- BEGIN
- DECLARE dohvaceno, i, sif,sati,br,razlika INT;
- DECLARE cur CURSOR FOR SELECT radnik.sifradnik,nalog.ostvarenisatirada FROM radnik
- JOIN nalog ON nalog.sifradnik = radnik.sifradnik;
- SET i = 0;
- OPEN cur;
- SELECT FOUND_ROWS() INTO dohvaceno;
- WHILE i < dohvaceno DO
- FETCH cur INTO sif/*,sati*/;
- UPDATE radnik
- SET satiNaNalozima = sati
- WHERE sifradnik = sif;
- SET i= i+1;
- END WHILE;
- SELECT COUNT(sifradnik) INTO br FROM radnik
- WHERE satiNaNalozima IS NOT NULL;
- CLOSE cur;
- SET razlika = dohvaceno - br;
- RETURN razlika;
- END; //
- DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment