Advertisement
Guest User

dobjsad

a guest
May 22nd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '1'
  2. SELECT nr_zlecenia "Zlecenie AB"
  3. FROM Donacje NATURAL JOIN Dawcy
  4. WHERE grupa_krwi='AB';
  5.  
  6. '2'
  7. SELECT W1.pseudo_wampira "PSEUDO WAMPIRA",
  8.        W1.plec_wampira "PLEC WAMPIRA",
  9.        NVL(TO_CHAR(W1.pseudo_szefa), ' ') "PSEUDO SZEFA",
  10.        NVL(TO_CHAR(W2.plec_wampira), ' ') "PLEC SZEFA"
  11. FROM Wampiry W1 LEFT JOIN Wampiry W2 ON W2.pseudo_wampira=W1.pseudo_szefa;
  12.  
  13. '3'
  14. SELECT D1.pseudo_dawcy "Dawca przed Slodka" , D1.plec_dawcy "Plec"
  15. FROM Dawcy D1, Dawcy D2
  16. WHERE D2.pseudo_dawcy='Slodka' AND
  17.       D1.rocznik_dawcy<D2.rocznik_dawcy;
  18.  
  19. '4'
  20. SELECT pseudo_dawcy, 'Ponizej 700' "Pobor"
  21. FROM Donacje
  22. GROUP BY pseudo_dawcy
  23. HAVING SUM(ilosc_krwi)<700
  24. UNION ALL
  25. SELECT pseudo_dawcy, 'Miedzy 700 a 1000'
  26. FROM Donacje
  27. GROUP BY pseudo_dawcy
  28. HAVING SUM(ilosc_krwi) BETWEEN 700 AND 1000
  29. UNION ALL
  30. SELECT pseudo_dawcy, 'Powyzej 1000'
  31. FROM Donacje
  32. GROUP BY pseudo_dawcy
  33. HAVING SUM(ilosc_krwi)>1000;
  34.  
  35. '5'
  36. SELECT S.pseudo_wampira,  "ile sprawnosci" "Liczba"
  37. FROM (SELECT pseudo_wampira, COUNT(sprawnosc) "ile sprawnosci"
  38.        FROM Sprawnosci_w
  39.        GROUP BY pseudo_wampira) S JOIN
  40.      (SELECT pseudo_wampira, COUNT(jezyk_obcy) "ile jezykow"
  41.       FROM Jezyki_obce_w
  42.       GROUP BY pseudo_wampira) J ON J.pseudo_wampira=S.pseudo_wampira
  43. WHERE "ile sprawnosci"="ile jezykow"
  44. ORDER BY S.pseudo_wampira;
  45.  
  46. '6'
  47. SELECT nr_zlecenia, data_zlecenia
  48. FROM Zlecenia
  49. WHERE nr_zlecenia IN (SELECT nr_zlecenia
  50.                      FROM Donacje
  51.                      WHERE pseudo_dawcy IN (SELECT pseudo_dawcy
  52.                                             FROM Dawcy
  53.                                             WHERE grupa_krwi='AB'))
  54.  
  55. ORDER BY nr_zlecenia;
  56.  
  57. '7'
  58. SELECT W.plec_wampira "Plec", COUNT("ile jezykow") "Liczba lingwistow"
  59. FROM Wampiry W JOIN (SELECT pseudo_wampira, COUNT(jezyk_obcy) "ile jezykow"
  60.                      FROM Jezyki_obce_w
  61.                      GROUP BY pseudo_wampira)J ON J.pseudo_wampira=W.pseudo_wampira
  62. WHERE "ile jezykow">1
  63. GROUP BY W.plec_wampira;
  64.  
  65. '8a'
  66. SELECT ilosc_krwi "Objetosc", pseudo_dawcy "Dawca"
  67. FROM Donacje D
  68. WHERE 3>(SELECT COUNT(DISTINCT D2.ilosc_krwi)
  69.            FROM Donacje D2
  70.            WHERE D.ilosc_krwi<D2.ilosc_krwi)
  71. ORDER BY ilosc_krwi DESC;
  72. ;
  73.  
  74. '8b'
  75. SELECT D1.ilosc_krwi "Objetosc", D1.pseudo_dawcy "Dawca"
  76. FROM Donacje D1, Donacje D2
  77. WHERE D1.ilosc_krwi<=D2.ilosc_krwi
  78. GROUP BY D1.pseudo_dawcy, D1.ilosc_krwi
  79. HAVING COUNT(DISTINCT D2.ilosc_krwi)<=3
  80. ORDER BY D1.ilosc_krwi DESC;
  81.  
  82. SELECT D1.ilosc_krwi "Objetosc", D1.pseudo_dawcy "Dawca"
  83. FROM Donacje D1 JOIN Donacje D2 ON D1.ilosc_krwi<=D2.ilosc_krwi
  84. GROUP BY D1.pseudo_dawcy, D1.ilosc_krwi
  85. HAVING COUNT(DISTINCT D2.ilosc_krwi)<=3
  86. ORDER BY D1.ilosc_krwi DESC;
  87.  
  88. '9 podzapytania'
  89. SELECT pseudo_dawcy "Dawca", grupa_krwi "Grupa"
  90. FROM Dawcy
  91. WHERE pseudo_dawcy IN
  92.       (SELECT pseudo_dawcy
  93.        FROM Donacje
  94.        WHERE nr_zlecenia IN
  95.              (SELECT nr_zlecenia
  96.               FROM Zlecenia
  97.               WHERE pseudo_wampira IN
  98.                     (SELECT pseudo_wampira
  99.                      FROM  Jezyki_obce_w
  100.                      WHERE jezyk_obcy='polski')));
  101.  
  102. '9 złączenie relacji'
  103. SELECT D1.pseudo_dawcy "Dawca", D2.grupa_krwi "Grupa", J.pseudo_wampira "Biorca"
  104. FROM Donacje D1, Dawcy D2, Jezyki_obce_w J, Zlecenia Z
  105. WHERE D1.pseudo_dawcy=D2.pseudo_dawcy AND
  106.       Z.pseudo_wampira=J.pseudo_wampira AND
  107.       D1.nr_zlecenia=Z.nr_zlecenia AND J.jezyk_obcy='polski'
  108. ORDER BY D1.pseudo_dawcy;
  109.  
  110. '10'
  111. SELECT pseudo_wampira "Wampir", TO_CHAR(wampir_w_rodzinie,'YYYY') "Rok wstapienia"
  112. FROM Wampiry
  113. WHERE TO_CHAR(wampir_w_rodzinie,'YYYY') IN (SELECT TO_CHAR(wampir_w_rodzinie,'YYYY')
  114.                             FROM Wampiry
  115.                             GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  116.                             HAVING COUNT(pseudo_wampira)>1);
  117.  
  118. '11'
  119. SELECT TO_CHAR(wampir_w_rodzinie,'YYYY') "ROK",
  120.       COUNT(pseudo_wampira) "LICZBA WSTAPIEN"
  121. FROM Wampiry
  122. GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  123. HAVING COUNT(pseudo_wampira) = (
  124.       SELECT *
  125.       FROM (SELECT COUNT(pseudo_wampira)
  126.             FROM Wampiry
  127.             GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  128.             HAVING COUNT(pseudo_wampira) <=(SELECT AVG(COUNT(pseudo_wampira))
  129.                                             FROM Wampiry
  130.                                             GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY'))
  131.             ORDER BY COUNT(pseudo_wampira) DESC)
  132.       WHERE ROWNUM=1)
  133. UNION ALL
  134. SELECT 'Srednia' "ROK",
  135.        AVG(COUNT(pseudo_wampira))  "LICZBA WSTAPIEN"
  136. FROM Wampiry
  137. GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  138. UNION ALL
  139. SELECT TO_CHAR(wampir_w_rodzinie,'YYYY') "ROK",
  140.        COUNT(pseudo_wampira) "LICZBA WSTAPIEN"
  141. FROM Wampiry
  142. GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  143. HAVING COUNT(pseudo_wampira) = (
  144.       SELECT *
  145.       FROM (SELECT COUNT(pseudo_wampira)
  146.             FROM Wampiry
  147.             GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY')
  148.             HAVING COUNT(pseudo_wampira) >=(SELECT AVG(COUNT(pseudo_wampira))
  149.                                             FROM Wampiry
  150.                                             GROUP BY TO_CHAR(wampir_w_rodzinie,'YYYY'))
  151.             ORDER BY COUNT(pseudo_wampira) ASC)
  152.       WHERE ROWNUM=1);
  153.  
  154. '12a'
  155. SELECT pseudo_dawcy "Dawczyni",
  156.        grupa_krwi "Grupa krwi",
  157.       (SELECT SUM(ilosc_krwi)
  158.         FROM Donacje
  159.         WHERE D.pseudo_dawcy=Donacje.pseudo_dawcy
  160.         GROUP BY pseudo_dawcy) "W sumie oddala",
  161.        (SELECT ROUND(AVG(SUM(ilosc_krwi)),0)
  162.         FROM Dawcy NATURAL JOIN Donacje
  163.         WHERE Dawcy.grupa_krwi=D.grupa_krwi AND plec_dawcy='K'
  164.         GROUP BY pseudo_dawcy) "Srednia suma w jej grupie"
  165. FROM Dawcy D
  166. WHERE plec_dawcy='K';
  167.  
  168. '12b'
  169. SELECT *
  170. FROM (SELECT D1.pseudo_dawcy, grupa_krwi,SUM(D2.ilosc_krwi) "W sumie oddala"
  171.       FROM Dawcy D1 JOIN Donacje D2 ON D1.pseudo_dawcy = D2.pseudo_dawcy
  172.       WHERE plec_dawcy='K'
  173.       GROUP BY D1.pseudo_dawcy, grupa_krwi)
  174.        JOIN
  175.      (SELECT ROUND(AVG("Suma indywidualna"), 0) "Srednia suma w jej grupie", grupa_krwi
  176.       FROM (SELECT SUM(D6.ilosc_krwi) "Suma indywidualna", D5.pseudo_dawcy, grupa_krwi
  177.             FROM Dawcy D5 JOIN Donacje D6 ON D5.pseudo_dawcy = D6.pseudo_dawcy
  178.             WHERE plec_dawcy='K'
  179.             GROUP BY D5.pseudo_dawcy, grupa_krwi)
  180.       GROUP BY grupa_krwi)
  181.   USING(grupa_krwi)
  182. ;
  183.  
  184.  
  185. SELECT D4.pseudo_dawcy, D4.grupa_krwi, D4."W sumie oddala", D8."Srednia suma w jej grupie"
  186. FROM (SELECT D0.pseudo_dawcy, D0.grupa_krwi, D3."W sumie oddala"
  187.       FROM Dawcy D0 JOIN (SELECT D1.pseudo_dawcy, SUM(D2.ilosc_krwi) "W sumie oddala"
  188.                         FROM Dawcy D1 JOIN Donacje D2 ON D1.pseudo_dawcy = D2.pseudo_dawcy
  189.                         GROUP BY D1.pseudo_dawcy) D3 ON D0.pseudo_dawcy=D3.pseudo_dawcy
  190.       WHERE plec_dawcy='K') D4
  191.     JOIN
  192.   (SELECT ROUND(AVG("Suma indywidualna"), 0) "Srednia suma w jej grupie", D7.grupa_krwi
  193.           FROM (SELECT SUM(D6.ilosc_krwi) "Suma indywidualna", D5.pseudo_dawcy
  194.                 FROM Dawcy D5 JOIN Donacje D6 ON D5.pseudo_dawcy = D6.pseudo_dawcy
  195.                 GROUP BY D5.pseudo_dawcy) NATURAL JOIN Dawcy D7
  196.           WHERE D7.plec_dawcy='K'
  197.           GROUP BY D7.grupa_krwi) D8
  198.     ON
  199.       D4.grupa_krwi=D8.grupa_krwi
  200. ;
  201.  
  202. '13'
  203. SELECT W.pseudo_wampira, D.pseudo_dawcy, SUM(ilosc_krwi)
  204. FROM Wampiry W JOIN Donacje D ON W.pseudo_wampira = D.pseudo_wampira
  205. WHERE pseudo_dawcy IN (SELECT D1.pseudo_dawcy
  206.                         FROM Dawcy D1 JOIN Donacje D2 ON D1.pseudo_dawcy = D2.pseudo_dawcy
  207.                         WHERE plec_dawcy='K'
  208.                         HAVING SUM(D2.ilosc_krwi)>800
  209.                         GROUP BY D1.pseudo_dawcy)
  210.       AND W.plec_wampira='M'
  211.       AND W.pseudo_wampira NOT IN (SELECT Z.pseudo_wampira
  212.                                     FROM Zlecenia Z)
  213. GROUP BY W.pseudo_wampira, D.pseudo_dawcy;
  214.  
  215. '14'
  216. SELECT pseudo_dawcy "Dawca", rocznik_dawcy "Rocznik"
  217. FROM Dawcy
  218. WHERE grupa_krwi='0';
  219.  
  220. UPDATE Dawcy
  221. SET rocznik_dawcy=NVL(rocznik_dawcy,0)+5
  222. WHERE grupa_krwi='0';
  223.  
  224. SELECT pseudo_dawcy "Dawca", rocznik_dawcy "Rocznik"
  225. FROM Dawcy
  226. WHERE grupa_krwi='0';
  227.  
  228. ROLLBACK;
  229.  
  230. SELECT pseudo_dawcy "Dawca", rocznik_dawcy "Rocznik"
  231. FROM Dawcy
  232. WHERE grupa_krwi='0';
  233.  
  234.  
  235. '15'
  236. SELECT W.pseudo_wampira "PSEUDO WAMPIRA",
  237.        W.pseudo_szefa "PSEUDO SZEFA",
  238.        W2.pseudo_szefa "PSEUDO SZEFA SZEFA"
  239. FROM Wampiry W LEFT JOIN Wampiry W2 ON W.pseudo_szefa=W2.pseudo_wampira
  240. WHERE W.plec_wampira='M';
  241.  
  242. '16'
  243. SELECT W.plec_wampira, SUM(DECODE(W.pseudo_szefa, 'Drakula', D.ilosc_krwi, 0)) "Pod Drakula",
  244.        SUM(DECODE(W.pseudo_szefa, 'Opoj', D.ilosc_krwi, 0)) "Pod Opojem",
  245.        SUM(DECODE(W.pseudo_szefa, 'Wicek', D.ilosc_krwi, 0)) "Pod Wickiem"
  246. FROM Wampiry W NATURAL JOIN Donacje D
  247. GROUP BY plec_wampira;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement