Advertisement
Guest User

Untitled

a guest
Jan 15th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --po dwa wybrane zadania z listy 2 i 3
  2.  
  3. -- z listy 2
  4. --zad 19
  5.  
  6. --a
  7. SELECT K.imie "Imie", '|' " ", NVL(K.funkcja, ' ') "Funkcja", '|' "   ", NVL(K.szef.imie, ' ') "Szef 1",'|' "    ", NVL(K.szef.szef.imie, ' ') "Szef 2", '|' "     ", NVL(K.szef.szef.szef.imie, ' ') "Szef 3"
  8. FROM KotO_table K
  9. WHERE K.funkcja = 'KOT' OR K.funkcja = 'MILUSIA';
  10.  
  11. --b
  12. SELECT "imie" "Imie", "funkcja" "Funkcja", NVL("Szef 1", ' ') "Szef 1", NVL("Szef 2", ' ') "Szef 2", NVL("Szef 3", ' ') "Szef 3"
  13. FROM (SELECT LEVEL "poziom", CONNECT_BY_ROOT K.imie "imie", CONNECT_BY_ROOT K.funkcja "funkcja", K.imie "imie szefa"
  14.         FROM KotO_table K
  15.         CONNECT BY PRIOR K.szef = REF(K)
  16.         START WITH K.funkcja IN ('KOT','MILUSIA'))
  17.     PIVOT(
  18.         MAX("imie szefa")
  19.         FOR "poziom"
  20.         IN('2' "Szef 1", '3' "Szef 2", '4' "Szef 3")
  21.         );
  22.  
  23. --c
  24. SELECT CONNECT_BY_ROOT K.imie "Imie", CONNECT_BY_ROOT K.funkcja "Funkcja",  SUBSTR(SYS_CONNECT_BY_PATH(K.imie, '   |'), 12) "Imiona kolejnych szefow"
  25. FROM KotO_table K
  26. WHERE K.szef IS NULL
  27. CONNECT BY PRIOR K.szef = REF(K)
  28. START WITH K.funkcja IN ('KOT','MILUSIA');
  29.  
  30. --zad 22
  31. SELECT I.kot_z_incydentu.funkcja "Funkcja", I.kot_z_incydentu.pseudo "Pseudonim kota", COUNT(I.imie_wroga) "I"
  32. FROM IncydentyO_table I
  33. GROUP BY I.kot_z_incydentu.funkcja, I.kot_z_incydentu.pseudo
  34. HAVING COUNT(I.imie_wroga)>=2;
  35.  
  36.  
  37. --z listy 3
  38.  
  39. --zad 34
  40.  
  41. SET SERVEROUTPUT ON
  42. DECLARE
  43.     funk KotO_table.funkcja%TYPE:='&funkcja';
  44. BEGIN
  45.     SELECT K.funkcja INTO funk
  46.     FROM KotO_table K
  47.     GROUP BY K.funkcja
  48.     HAVING K.funkcja = funk;
  49.         DBMS_OUTPUT.PUT_LINE(funk);
  50. EXCEPTION
  51.       WHEN no_data_found THEN
  52.         DBMS_OUTPUT.PUT_LINE(SQLERRM);
  53. END;
  54.  
  55.  
  56. --Zad 35 PUNIA I KURKA
  57. SET SERVEROUTPUT ON
  58. DECLARE
  59.     im KotO_table.imie%TYPE;
  60.     myszy_rocznie VARCHAR2(4);
  61.     zawiera_a VARCHAR2(20);
  62.     czy_styczen VARCHAR2(50);
  63.     p1 KotO_table.pseudo%TYPE:='&pseudo';
  64. BEGIN
  65.  
  66.     SELECT K.imie INTO im
  67.     FROM KotO_table K
  68.     WHERE K.pseudo = p1;
  69.  
  70.    
  71.     SELECT CASE
  72.             WHEN NVL(K.przydzial_myszy, 0)*12 > 700 THEN '>700'
  73.             WHEN NVL(K.przydzial_myszy, 0)*12 < 700 THEN '<700'
  74.             WHEN NVL(K.przydzial_myszy, 0)*12 = 700 THEN '=700'
  75.             END INTO myszy_rocznie
  76.     FROM KotO_table K
  77.     WHERE K.pseudo = p1;
  78.    
  79.     SELECT CASE
  80.             WHEN K.imie LIKE '%A%' THEN 'imie zawiera A'
  81.             ELSE 'imie nie zawiera A'
  82.             END INTO zawiera_a
  83.     FROM KotO_table K
  84.     WHERE K.pseudo=p1;
  85.    
  86.     SELECT CASE
  87.         WHEN EXTRACT(MONTH FROM K.w_stadku_od) = 1 THEN 'styczen jest miesiacem przystapienia do stada'
  88.         ELSE 'styczen NIE jest miesiacem przystapienia do stada'
  89.         END INTO czy_styczen
  90.         FROM KotO_table K
  91.         WHERE K.pseudo = p1;
  92.        
  93.     DBMS_OUTPUT.PUT_LINE(im);
  94.     DBMS_OUTPUT.PUT_LINE('calkowity roczny przydzial myszy'||myszy_rocznie);
  95.     DBMS_OUTPUT.PUT_LINE(im);
  96.     DBMS_OUTPUT.PUT_LINE(zawiera_a);
  97.     DBMS_OUTPUT.PUT_LINE(im);
  98.     DBMS_OUTPUT.PUT_LINE(czy_styczen);
  99.     DBMS_OUTPUT.PUT_LINE(im);
  100.      IF myszy_rocznie = '>700' AND zawiera_a = 'imie zawiera A'
  101.                 AND czy_styczen = 'styczen jest miesiacem przystapienia do stada'
  102.         THEN  DBMS_OUTPUT.PUT_LINE('odpowiada kryteriom');
  103.         ELSE  DBMS_OUTPUT.PUT_LINE('nie odpowiada kryteriom');
  104.     END IF;
  105. EXCEPTION
  106.     WHEN OTHERS
  107.     THEN DBMS_OUTPUT.PUT_LINE(SQLERRM);
  108. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement