Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.Obliczyć dla poszczególnych osób liczbe pełnych lat, jakie każda z nich przepracowała w aktualnym miejescu zatrudnienia.
- ID_OS Lata pracy
- 2 15
- 7 12
- 9 12
- 15 12
- 3 9
- 21 9
- SELECT id_os, TRUNC(MONTHS_BETWEEN(SYSDATE,od)/12) LATA_PRACY
- FROM zatrudnienia
- WHERE do IS NULL
- ORDER BY 2 DESC, 1 ASC;
- 2.Wyświetlić alfabetyczną listę osób, których pierwsze imię zawiera choć jedną literę 'a'.
- SELECT id_os, INITCAP(imie1)||' '||INITCAP(nazwisko) pracownik
- FROM osoby
- WHERE LOWER(imie1) LIKE '%a%'
- ORDER BY 2 ASC;
- 3. Wyświetlić dane takich osób, których nazwisko zaczyna się na literę K lub L i urodziły się w czerwcu,
- listopadzie i grudniu lub te kobiety, które mają drugie imię.
- SELECT id_os, INITCAP(nazwisko)||' '||INITCAP(imie1)osoba, d_ur, plec
- FROM osoby
- WHERE ((SUBSTR(INITCAP(nazwisko),1,1)='K' OR SUBSTR(INITCAP(nazwisko),1,1)='L')
- AND (TO_CHAR(d_ur,'MM')='06' OR TO_CHAR(d_ur,'MM')='11' OR TO_CHAR(d_ur,'MM')='12'))
- OR (plec='K' AND imie2 IS NOT NULL);
- -||-
- WHERE(SUBSTR(INITCAP(nazwisko),1,1) IN ('K','L') AND TO_CHAR(d_ur,'MM') IN ('06','11','12'))
- OR (plec='K' AND imie2 IS NOT NULL);
- 4.Wyświetlić liczbę osób zarejestrowanych w bazie.
- SELECT COUNT(id_os) liczba_osob
- FROM osoby;
- 5. Wyświetlić liczbę osób z każdej płci.
- SELECT COUNT(id_os) liczba_osob
- FROM osoby
- GROUP BY plec;
- SELECT plec, COUNT(id_os) liczba_osob
- FROM osoby
- GROUP BY plec
- ORDER BY 2 DESC;
- 6.Dla poszczególnych osób ich aktualne pensje( 2 sposoby )
- ID_OS OSOBA PENSJA
- 2 Duda Barbara 4500
- 10 Nowak Adam 4000
- 21 Nowak Michał 4000
- 15 Pielecki Marek 3800
- SELECT o.id_os, INITCAP(z.imie1)||' '||INITCAP(o.nazwisko) osoba, z.pensja
- FROM osoby o,zatrudnienia z
- WHERE o.id_os=z.id_os AND z.do IS NULL
- ORDER BY z.pensja DESC, o.imie ASC;
- FROM osoby o JOIN zatrudnienia ON o.id_os=z.id_os
- WHERE z.do IS NULL;
- 7.Wyswietlić te osoby, które do tej pory nie BYły zatrudnione.
- SELECT o.id_os, INITCAP(o.imie1)||' '||INITCAP(o.nazwisko) osoba
- FROM osoby o LEFT JOIN zatrudnienia z ON o.id_os=z.id_os
- WHERE z.do IS NULL;
- 8.Wyświetlić te wydziały, które zatrudniają aktualnie przynajmniej 2 osoby.
- SELECT INITCAP(w.nazwa) wydzial, COUNT(z.id_os) liczba_osob
- FROM wydzialy w JOIN zatrudnienia z ON w.id_w=z.id_w
- WHERE z.do IS NULL
- GROUP BY INITCAP(w.nazwa)
- HAVING COUNT (z.id_os)>1
- ORDER BY 2 DESC, 1 ASC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement