Bazy danych - Politechnika Białostocka

Transkrypt

Bazy danych - Politechnika Białostocka
Małgorzata Krętowska
Politechnika Białostocka
Wydział Informatyki
Bazy danych
Pracownia specjalistyczna nr 8
Podzapytania z EXISTS
Zadania
1. Wybrać nazwiska osób pod warunkiem, że istnieją też inne osoby zarabiające tyle, co dana
osoba.
2. Wypisać nazwiska oraz pensje tych osób, które nie mają podwładnych.
3. Wypisać te poziomy zarobków, w skład których wchodzą pensje co najmniej 2 osób, przy
założeniu, że przynajmniej jedna z tych osób pracowała nad dwoma projektami.
4. Wypisać nazwy projektów, nazwiska ludzi, którzy nad nim pracowali, pod warunkiem, że
każdy pracownik nad nim pracujący jest na innym stanowisku.
5. Wypisać nazwy departamentów, w których pracuje najwięcej ludzi i pracuje co najmniej
jeden pracownik, który był zatrudniony przy realizacji dokładnie jednego projektu. Podać
nazwiska tych pracowników.
6. Wypisać nazwy departamentów, w których pracuje najwięcej Sprzedawców. Wypisać
nazwę departamentu, minimalną, maksymalną i średnią pensję w tych departamentach.
7. Wypisać nazwiska pracowników i ich kierowników (jeśli takowych posiadają), pod
warunkiem, że podwładny pracował przy realizacji najwcześniejszego projektu, pracował
najwięcej godzin przy najwcześniejszym projekcie a jego kierownik nie pracował przy
żadnym projektem.
8. Znaleźć nazwę departamentu, w którym pracuje najwięcej ludzi a wśród tych ludzi jest
człowiek zarabiający najwięcej w całej firmie.
9. Wypisać nazwiska osób zarabiających więcej niż co najmniej jeden kierownik.
10. Dla każdego departamentu (nazwa) wypisać stanowiska najliczniej obsadzone.
11. Wypisać nazwę departamentu, średnią pensję podwładnych, średnią pensję kierowników
(pracujących w tym departamencie), pod warunkiem, że w departamencie tym pracuje
najwięcej podwładnych.
12. Wypisać nazwiska kierowników oraz nazwy departamentów, w których pracują, pod
warunkiem, że dany kierownik ma najwięcej podwładnych, którzy kiedykolwiek pracowali
(lub pracują) przy realizacji jakiegoś projektu. Przykład: kierownik A ma 20 podwładnych, z
których 5 pracowało nad projektem, kierownik B ma 6 podwładnych, z których każdy
pracował przy realizacji projektu. Powinno zostać wypisane nazwisko B.
13. Wypisać daty zatrudnienia oraz pensje ludzi, którzy pracowali (lub pracują) przy realizacji
ostatniego projektu, pod warunkiem, że zatrudnieni są w najmniej licznym departamencie.
14. Wypisać nazwę oraz lokalizację departamentu, w którym pracuje najwięcej kierowników.
15. Wypisać nazwiska, pensje i stanowisko ludzi, których zarobki są unikatowe (nie ma drugiej
osoby zarabiającej tyle samo) a stanowisko jest takim, na którym średnia pensja nie jest
najwyższą średnią.
16. Wypisać nazwę projektu, nad którym pracowało najwięcej ludzi oraz nazwiska tych ludzi,
pod warunkiem, że spędzili oni najwięcej (najmniej) godzin nad realizacją projektu a ich
pensja jest niższa od średniej pensji w firmie.
Pomoc
EXISTS
SELECT …
FROM ….
WHERE EXISTS (SELECT ....)
•
EXISTS (podzapytanie) - zwraca „true” jeżeli podzapytanie zwróci
przynajmniej jeden wiersz
•
NOT EXISTS(podzapytanie) zwraca „true” jeżeli podzapytanie nie
zwróci żadnego wiersza
Przykład:
Wypisać pracowników, którzy posiadają podwładnych
SELECT nazwisko
FROM pracownik a
WHERE EXISTS
(SELECT 1 FROM pracownik
WHERE pracownik.id_kierownika=a.id_pracownika);

Podobne dokumenty