Facebook
From Jittery Owl, 3 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 65
  1. --2
  2. SELECT id_os "Identyfikator", INITCAP(imie1)||' '|| INITCAP(nazwisko) "Imię i nazwisko", SUBSTR(imie1, 1, 1)||SUBSTR(nazwisko, 1, 1) || TO_CHAR(d_ur, 'YYYY') "Kod pracowniczy"
  3. FROM osoby
  4. WHERE (nazwisko LIKE '%A%' OR nazwisko LIKE '%M%') AND to_char(d_ur, 'Q')=2
  5. ORDER BY 1 ASC;
  6.  
  7. --3
  8. SELECT s.nazwa "Nazwa stanowiska", COUNT(id_os) "Liczba aktualnych pracowników", MIN(pensja) "Minimalna aktualna pensja", MAX(pensja) "Maksymalna aktualna pensja"
  9. FROM zatrudnienia JOIN stanowiska s USING(id_s) JOIN wydzialy w USING(id_w)
  10. WHERE w.nazwa IN ('PRAWO', 'EKONOMIA', 'FILOLOGIA') AND do IS NULL
  11. GROUP BY w.nazwa, s.nazwa
  12. ORDER BY w.nazwa ASC;
  13.  
  14. --4
  15. SELECT w.nazwa
  16. FROM zatrudnienia JOIN wydzialy w USING (id_w) JOIN osoby USING(id_os)
  17. WHERE do IS NULL AND plec='K'
  18. GROUP BY w.nazwa
  19. HAVING avg(pensja) BETWEEN 1200 AND 2000
  20. ORDER BY 1 ASC;
  21.  
  22. --5
  23. SELECT nazwisko, to_char(d_ur, 'dd month yyyy') "DATA URODZENIA"
  24. FROM osoby
  25. WHERE d_ur=(SELECT MAX(d_ur) FROM osoby WHERE imie1='EWA') AND imie1='EWA';
  26.  
  27. --6
  28. SELECT nazwisko, UPPER(s.nazwa) "Nazwa stanowiska"
  29. FROM zatrudnienia z JOIN osoby USING(id_os) JOIN stanowiska s USING (id_s)
  30. WHERE do IS NULL AND pensja<(SELECT avg(pensja) FROM zatrudnienia
  31. WHERE do IS NULL AND id_w=z.id_w)
  32. ORDER BY nazwisko;
  33.  
  34. --7
  35. SELECT to_char(d_ur, 'YYYY') "ROK" FROM osoby
  36. WHERE plec='M'
  37. GROUP BY to_char(d_ur, 'YYYY')
  38. HAVING COUNT(id_os)=(SELECT MAX(COUNT(id_os)) FROM osoby WHERE plec='M' GROUP BY to_char(d_ur, 'YYYY'));