SHARE
TWEET

ORACLE

pabloducato Jun 28th, 2018 137 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ZESTAW 1
  2.  
  3. 1. Wstaw nowy rekord do pracownik贸w, a w nim swoje imi臋 i nazwisko, dzisiejsz膮 dat臋, a reszt臋 wed艂ug uznania.
  4.  
  5. INSERT INTO pracownicy
  6. VALUES    (1234,'NAZWISKO','IMIE','Q',667,7902,TO_DATE('2016/07/05', 'YYYY/MM/DD'),800,NULL,20);
  7.  
  8. 2. Poka偶 wszystkich pracownik贸w, kt贸rzy maj膮 podw艂adnych
  9.  
  10. SELECT id_pracownika, nazwisko, imie
  11. FROM pracownicy
  12. WHERE id_pracownika IN (
  13.   SELECT id_szefa
  14.   FROM pracownicy
  15.   WHERE id_szefa IS NOT NULL
  16. );
  17.  
  18. 3. Poka偶 艣rednie ceny dla wyrob贸w, nawet dla tych, kt贸re nie maj膮 ceny.
  19.  
  20. SELECT w.opis, avg(c.cena_cennikowa) AS "Srednia cena cennikowa", avg (c.cena_minimalna) AS "艣rednia cena minimalna"
  21. FROM wyroby w
  22. LEFT JOIN ceny c ON c.id_produktu=w.id_produktu
  23. GROUP BY w.opis
  24. ORDER BY w.opis
  25.  
  26. 4. Podwoi膰 LIMIT kredytowy klientom, kt贸rzy w ci膮gu ostatniego miesi膮ca dokonali zam贸wie艅. (jako艣 tak)
  27.  
  28. UPDATE klienci
  29. SET limit_kredytowy = limit_kredytowy*2
  30. WHERE id_klienta IN
  31. (
  32. SELECT id_klienta
  33. FROM zamowienia
  34. WHERE data_zamowienia > '90/10/19'
  35. );
  36.    
  37.  
  38. ZESTAW 2
  39.  
  40. 1. Doda膰 rekord ze swoimi danymi (imi臋, nazwisko a reszta dowolna)
  41.  
  42. INSERT INTO pracownicy
  43. VALUES    (1234,'NAZWISKO','IMIE','Q',667,7902,TO_DATE('2016/07/05', 'YYYY/MM/DD'),800,NULL,20);
  44.  
  45. 2. Wy艣wietli膰 zam贸wienia dla klient贸w nie z bostonu
  46.  
  47. SELECT k.id_klienta, k.miasto, z.id_zamowienia
  48. FROM klienci k
  49.   LEFT JOIN zamowienia z ON k.id_klienta = z.id_klienta
  50. WHERE k.miasto != 'BOSTON';
  51.  
  52.  
  53. 3. Wy艣wietli膰 ilo艣膰 pracownik贸w na poszczeg贸lnym etacie (+ te co nie ma 偶adnego pracownika)
  54.  
  55. SELECT COUNT(p.id_pracownika) AS "ilosc pracownikow" , e.etat
  56. FROM pracownicy p
  57. LEFT JOIN etaty e ON p.id_etatu = e.id_etatu
  58. GROUP BY e.etat
  59.  
  60. 4. Zwi臋kszy膰 o 10% LIMIT kredytowy klientom, kt贸rzy maj膮 MIN. 3 zam贸wienia
  61.  
  62. UPDATE klienci
  63. SET limit_kredytowy = limit_kredytowy*0.1 + limit_kredytowy
  64. WHERE id_klienta IN
  65. (
  66. SELECT k.id_klienta
  67. FROM klienci k, zamowienia z
  68. WHERE z.id_klienta = k.id_klienta
  69. GROUP BY k.id_klienta
  70. HAVING COUNT(k.id_klienta) >= 3
  71. );
  72.  
  73. ZESTAW 3
  74.  
  75. 1. INSERT
  76.  
  77. INSERT INTO pracownicy
  78. VALUES    (1234,'NAZWISKO','IMIE','Q',667,7902,TO_DATE('2016/07/05', 'YYYY/MM/DD'),800,NULL,20);
  79.  
  80. 2. wska偶 wydzia艂y, kt贸re posiadaj膮 tylko jednego pracownika
  81.  
  82. SELECT w.nazwa, COUNT(p.id_wydzialu) AS "ilosc pracownikow"
  83. FROM pracownicy p, wydzialy w
  84. WHERE p.id_wydzialu=w.id_wydzialu
  85. GROUP BY w.nazwa
  86. HAVING COUNT(p.id_wydzialu) = 1
  87.  
  88.  
  89. 3. wska偶 pracownik贸w, kt贸ry maj膮 najwi臋ksze obroty (? co艣 takiego)
  90. SELECT p.id_pracownika, p.imie, p.nazwisko, SUM(z.wartosc) AS dupa
  91. FROM pracownicy p
  92. JOIN klienci k ON p.id_pracownika= k.id_pracownika
  93. JOIN zamowienia z ON z.ID_KLIENTA = k.id_klienta
  94. GROUP BY p.id_pracownika, p.imie, p.nazwisko
  95. ORDER BY dupa DESC;
  96.  
  97.  
  98. 4. Podnie艣膰 p艂膮ce pracownik贸w, kt贸rzy maj膮 wi臋cej ni偶 2 klient贸w (nie pami臋tam o ile)
  99.  
  100. UPDATE pracownicy
  101. SET pensja = pensja + 300
  102. WHERE id_pracownika IN
  103. (
  104. SELECT p.id_pracownika
  105. FROM pracownicy p, klienci k
  106. WHERE k.id_pracownika=p.id_pracownika
  107. GROUP BY p.id_pracownika
  108. HAVING COUNT(k.id_pracownika) > 2
  109. );
  110.  
  111.  
  112. ZESTAW 4
  113.  
  114. 1. INSERT
  115.  
  116. INSERT INTO pracownicy
  117. VALUES    (1234,'NAZWISKO','IMIE','Q',667,7902,TO_DATE('2016/07/05', 'YYYY/MM/DD'),800,NULL,20);
  118.  
  119. 2. Wy艣wietli膰 MAX i MIN zam贸wie艅 dla poszczeg贸lnych klientow.
  120.  
  121. SELECT k.nazwa, MIN(z.wartosc) AS "MIN", MAX(Z.WARTOSC) AS "MAX"
  122. FROM ZAMOWIENIA Z, KLIENCI K
  123. WHERE k.id_klienta=Z.id_klienta
  124. GROUP BY K.NAZWA
  125.  
  126. 3. Wy艣wietli膰 miasto(chyba), nazw臋 klienta, ilo艣膰 sprzeda偶y i 艣redni膮 sprzeda偶y, co艣 w tym stylu
  127.  
  128. SELECT k.miasto, K.NAZWA, COUNT(Z.ID_ZAMOWIENIA), AVG(Z.WARTOSC)
  129. FROM ZAMOWIENIA Z, KLIENCI K
  130. WHERE k.id_klienta=Z.id_klienta
  131. GROUP BY K.MIASTO, K.NAZWA
  132.  
  133.  
  134. 4. Zwi臋kszy膰 pensje pracownik贸w w dziale "SALES" o 1%, jak dobrze pami臋tam
  135.  
  136. UPDATE pracownicy
  137. SET pensja = pensja + pensja*0.01
  138. WHERE id_pracownika IN
  139. (
  140. SELECT p.id_pracownika
  141. FROM pracownicy p, wydzialy w
  142. WHERE p.id_wydzialu = w.id_wydzialu
  143. AND w.nazwa = 'SALES'
  144. );
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top