Cw5 Goscik odp - Odpowiedzi do zapytań SQL PDF

Title Cw5 Goscik odp - Odpowiedzi do zapytań SQL
Course Bazy danych
Institution Politechnika Bialostocka
Pages 15
File Size 84.5 KB
File Type PDF
Total Downloads 290
Total Views 917

Summary

/* PODZAPYTANIA CD *//*Zad. 1 Wypisać Ŷazwiska oraz peŶsje tyĐh osóď, które Ŷie są kierowŶikaŵi ;Ŷie ŵają podwładnych).*/select nazwisko, pensja from pracownik where id_pracownika not in ( select id_kierownika from pracownik where id_kierownika is not null );/* st Zad. 2 Wypisać Ŷazwiska osóď zaraďi...


Description

/* PODZAPYTANIA CD */

/* Zad. 1 Wypisać nazwiska oraz pensje tych osób, które nie są kierownikami (nie mają podwładnych).*/

select nazwisko, pensja from pracownik where id_pracownika not in ( select id_kierownika from pracownik where id_kierownika is not null );

/* st Zad. 2 Wypisać nazwiska osób zarabiających więcej niż co najmniej trzech pracowników, a każdy pracownik zarabiający mniej od danego realizował jakiś projekt. */

select id_pracownika, nazwisko from pracownik a where 3 = all ( select count(id_pracownika) from pracownik, poziom_zarobkow where pensja + nvl(premia, 0) between dolna_granica and gorna_granica and dolna_granica = ( select max(dolna_granica) from pracownik, poziom_zarobkow where pensja + nvl(premia, 0) between dolna_granica and gorna_granica ) group by nr_departamentu);

/* st Zad. 6

Wypisać średnie zarobki ludzi będących na tym samym stanowisku. Podać liczbę ludzi oraz stanowisko. Wypisywać tylko wtedy, gdy w obrębie jednej grupy znajduje się: a) co najmniej jeden pracownik i jego szef (są na tym samym stanowisku), b) dokładnie dwie takie pary.*/

SELECT AVG(pensja+nvl(premia,0)),COUNT(id_pracownika), stanowisko FROM Pracownik WHERE stanowisko in (SELECT p.stanowisko FROM Pracownik p,Pracownik k WHERE p.id_kierownika = k.id_pracownika AND p.stanowisko = k.stanowisko) group by stanowisko;

select count(id_pracownika), p.stanowisko, avg(pensja + nvl(premia,0)) from pracownik p group by p.stanowisko having (select count(id_pracownika) from pracownik pr where stanowisko = (select stanowisko from pracownik where id_pracownika = pr.id_kierownika) and stanowisko = p.stanowisko) = 2;

/* st Zad. 7 Wypisać nazwiska osób zarabiających najmniej w najmniej licznym departamencie.*/

select nazwisko from pracownik p where pensja + nvl(premia,0) = (select min(pensja + nvl(premia,0)) from pracownik where nr_departamentu = p.nr_departamentu) and p.nr_departamentu in (select nr_departamentu from pracownik group by nr_departamentu having count(id_pracownika)...


Similar Free PDFs