Sajmon

PocetJizd

Feb 28th, 2012
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.54 KB | None | 0 0
  1. CREATE OR REPLACE
  2. PROCEDURE PocetJizd
  3. AS
  4.   CURSOR cursStaff IS SELECT s.idstaff, S.fname, S.lname, COUNT(Tr.idStaff) pocet FROM Staff S
  5.     JOIN TrainCrew Tr ON (S.idStaff = Tr.idStaff) GROUP BY s.idstaff, s.fname,s.lname ORDER BY pocet DESC;
  6.   v_max INT := 0; -- PREDPOKLADANY MAX. POCET JAZD
  7.   v_temp_max INT;
  8.   v_top_employ staff.idstaff%TYPE; -- EMPLOYER S NAJVACSIM POCTOM JAZD
  9.   v_staff Staff%ROWTYPE;
  10.   v_from INT;
  11.   v_to INT;
  12. BEGIN
  13.   FOR cRow IN cursStaff
  14.     LOOP
  15.       v_temp_max := cRow.pocet;
  16.       IF (v_temp_max > v_max) THEN
  17.         v_max := v_temp_max;
  18.         v_top_employ := cRow.idStaff; -- ZAPAMATAM SI ID EMPLOYERA S NAJVACSIM POCTOM JAZD
  19.       END IF;  
  20.       DBMS_OUTPUT.put_line('NAME: ' || cRow.fname || ' SURNAME: ' || cRow.lname || ' POCET JAZD: ' || cRow.pocet);
  21.   END LOOP;
  22.   /* VYPIS TOP ZAMESTNANCA S JAZDAMI */
  23.     SELECT * INTO v_staff FROM Staff WHERE (idstaff = v_top_employ);
  24.     DBMS_OUTPUT.PUT_LINE('TOP EMPLOY: ');
  25.     DBMS_OUTPUT.PUT_LINE('NAME: ' || v_staff.fname || ' SURNAME: ' || v_staff.lname || ' POCET JAZD: ' || v_max);
  26.    
  27.     FOR pCrew IN (SELECT * FROM TrainCrew WHERE idStaff = v_top_employ)
  28.       LOOP
  29.           FOR pTrain IN (SELECT t.idstation, t.idstation1 FROM Train T JOIN TrainRide Tr
  30.           ON (t.idtrain = tr.idtrain) WHERE (tr.idtrainride = pCrew.idTrainRide))
  31.             LOOP
  32.               v_from := pTrain.idStation;
  33.               v_to := pTrain.idStation1;
  34.               DBMS_OUTPUT.PUT_LINE('FROM: ' || v_from || ' TO: ' || v_to);
  35.             END LOOP;
  36.       END LOOP;
  37. END;
Advertisement
Add Comment
Please, Sign In to add comment