Advertisement
Guest User

Untitled

a guest
May 27th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. --zad 1
  2. select nazwisko, etat, p.id_zesp, z.nazwa from pracownicy p
  3. inner join zespoly z on z.ID_ZESP = p.ID_ZESP
  4. order by nazwisko;
  5.  
  6. --zad 2
  7. select nazwisko, etat, p.id_zesp, z.adres from pracownicy p
  8. inner join zespoly z on p.id_zesp = z.ID_ZESP
  9. where adres = 'PIOTROWO 3A'
  10. order by nazwisko;
  11.  
  12. --zad 3
  13. select nazwisko, z.adres, z.nazwa from pracownicy p
  14. inner join zespoly z on p.id_zesp = z.id_zesp
  15. where placa_pod > 400
  16. order by nazwisko;
  17.  
  18. --zad 4
  19. select nazwisko, placa_pod, etat, nazwa, placa_od, placa_do
  20. from pracownicy p
  21. inner join etaty e
  22. on p.PLACA_POD between e.placa_od and placa_do
  23. order by nazwisko;
  24.  
  25. --zad 5
  26. select nazwisko, placa_pod, etat, nazwa, placa_od, placa_do
  27. from pracownicy p
  28. inner join etaty e
  29. on p.placa_pod between placa_od and placa_do
  30. where nazwa = 'SEKRETARKA'
  31. order by placa_pod desc;
  32.  
  33. --zad 6
  34. select nazwisko, etat, placa_pod, e.nazwa, z.nazwa
  35. from pracownicy p
  36. inner join etaty e
  37. on p.placa_pod between placa_od and placa_do
  38. left join zespoly z
  39. on p.ID_ZESP = z.ID_ZESP
  40. where etat not in ('ASYSTENT')
  41. order by placa_pod desc;
  42.  
  43. --zad 7
  44. select nazwisko, etat, nvl(12*(placa_pod) + placa_dod, 12*(placa_pod)) as roczna_placa, z.nazwa, e.nazwa
  45. from pracownicy p
  46. left join zespoly z
  47. on p.ID_ZESP = z.ID_ZESP
  48. left join etaty e
  49. on p.placa_pod between placa_od and placa_do
  50. where etat in ('ASYSTENT','ADIUNKT') and nvl(12*(placa_pod) + placa_dod, 12*(placa_pod)) > 5500
  51. order by nazwisko;
  52.  
  53. --zad 8
  54. select p.nazwisko, p.id_prac, s.nazwisko, p.id_szefa
  55. from pracownicy p
  56. inner join pracownicy s
  57. on p.ID_SZEFA = s.ID_PRAC
  58. order by p.nazwisko;
  59.  
  60. --zad 9
  61. select p.nazwisko, p.id_prac, s.nazwisko, p.id_szefa
  62. from pracownicy p
  63. left join pracownicy s
  64. on p.ID_SZEFA = s.ID_PRAC
  65. order by p.nazwisko;
  66.  
  67. --zad 10
  68. select z.nazwa, count(*) as liczba, nvl(avg(placa_pod), 0)
  69. from zespoly z
  70. left join pracownicy p
  71. on z.id_zesp = p.id_zesp
  72. group by z.nazwa
  73. order by z.nazwa;
  74.  
  75. --zad 11
  76. select s.nazwisko, count(*) as liczba
  77. from pracownicy s
  78. inner join pracownicy p
  79. on s.id_prac = p.id_szefa
  80. group by s.nazwisko
  81. order by liczba desc;
  82.  
  83. --zad 12
  84. select p.nazwisko, p.zatrudniony, s.nazwisko, s.zatrudniony
  85. from pracownicy p
  86. inner join pracownicy s
  87. on p.ID_SZEFA = s.ID_PRAC
  88. where extract(year from p.zatrudniony) < (extract(year from s.zatrudniony) + 10)
  89. order by p.zatrudniony;
  90.  
  91. --zad 13
  92. select e.nazwa from etaty e
  93. inner join pracownicy p
  94. on e.nazwa = p.etat
  95. where extract(year from p.zatrudniony) = '1992'
  96. intersect
  97. select e.nazwa from etaty e
  98. inner join pracownicy p
  99. on e.nazwa = p.etat
  100. where extract(year from p.zatrudniony) = '1993';
  101.  
  102. --zad 15
  103. select nazwisko, placa_pod,
  104. ( case when placa_pod < 480 then 'poniżej 480'
  105. end) as prog
  106. from pracownicy
  107. where placa_pod < 480
  108.  
  109. union
  110.  
  111. select nazwisko, placa_pod,
  112. ( case when placa_pod = 480 then 'dokładnie 480'
  113. end) as prog
  114. from pracownicy
  115. where placa_pod = 480
  116.  
  117. union
  118.  
  119. select nazwisko, placa_pod,
  120. ( case when placa_pod > 480 then 'powyżej 480'
  121. end) as prog
  122. from pracownicy
  123. where placa_pod > 480
  124. order by placa_pod;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement