Advertisement
JohnMandrake

Zadanie domowe (Antczak)

Mar 29th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.06 KB | None | 0 0
  1. SET SERVEROUTPUT ON
  2.  
  3. DECLARE
  4.   z_imie              osoby.imie1%TYPE;
  5.   z_nazwisko          osoby.nazwisko%TYPE;
  6.   z_id                osoby.id_os%TYPE;
  7.   z_nazwa             wydzialy.nazwa%TYPE;
  8.   z_liczba_osob       NUMBER;
  9.   z_liczba_wydzialow  NUMBER;
  10.  
  11. BEGIN
  12.    
  13.   SELECT COUNT(id_w)
  14.     INTO z_liczba_wydzialow
  15.     FROM wydzialy;
  16.  
  17.     <<e_wydzial>>
  18.     FOR licznik_wydzialow IN 1..z_liczba_wydzialow LOOP
  19.       SELECT COUNT(z.id_os), INITCAP(w.nazwa)
  20.         INTO z_liczba_osob, z_nazwa
  21.         FROM zatrudnienia z JOIN wydzialy w ON z.id_w=w.id_w
  22.         WHERE z.DO IS NULL AND w.id_w=licznik_wydzialow
  23.         GROUP BY INITCAP(w.nazwa);
  24.       DBMS_OUTPUT.PUT_LINE('Lista osób na wydziale '||z_nazwa||':');
  25.      
  26.       <<e_osoby>>
  27.       FOR licznik_osob IN 1..z_liczba_osob LOOP
  28.         SELECT INITCAP(imie1), INITCAP(nazwisko)
  29.           INTO z_imie, z_nazwisko
  30.           FROM osoby
  31.           WHERE id_os=licznik_osob;
  32.         DBMS_OUTPUT.PUT_LINE(licznik_osob||'. '||z_imie||' '||z_nazwisko);
  33.       END LOOP e_osoby;
  34.     END LOOP e_wydzial;
  35. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement