Klasówka z baz danych: Firma
Autor: Tomasz Waleń
Struktura bazy danych: firma.sql.
Zadanie
Baza zawiera dane o pewnej firmie. Są to informacje o
pracownikach i ich bezpośrednich szefach (Pracownicy
).
Tabela ListaObcenosci
zawiera dane o listach obecności,
które codziennie
są uzupełniane przez pracowników, którzy zapisują
w nich swoje przyjście i wyjście
z pracy (można założyć, że wejscie<wyjscie
).
Tabele Projekty
i UczestnicyProjektow
zawierajš
informacje o projektach, które są rozwijane w firmie.
Napisz następujące zapytania SQL:
- Wypisać zestawienie: imię, nazwisko, pensję pracownika, oraz łączną liczbę
projektów, w których bierze (lub brał) on udział.
Proszę pamiętać, również o tych pracownikach, którzy mają
tę liczbę równą 0.
Przez biorącego udział w projekcie rozumiemy osobę, dla której
istnieje odpowiedni wpis w tabeli
UczestnicyProjektow
.
- Wypisać imię i nazwisko pracownika
(lub pracowników jeśli będzie takich osób więcej) biorącego
udział w największej liczbie projektów.
- Wypisać id, imię i nazwisko tych osób,
które nigdy nie pojawiły się w pracy.
- Wypisać pracowników "oszustów" (imię + nazwisko), tzn. takich,
dla których istnieją co najmniej dwa różne wpisy w
ListaObecnosci
obejmujące okresy mające niezerową część wspólną.
- Wypisać dla każdego pracownika (nawet "oszusta") łączną
liczbę godzin przez niego przepracowanych (ale licząc
już wg sprawiedliwych zasad, czyli "wielokrotna" obecność liczy
się tylko raz).
Zestawienie powinno obejmować: imię, nazwisko i liczbę godzin.
- Wypisać pracowników (imię + nazwisko), którzy mają co najmniej
dwóch podwładnych (pośrednich lub bezpośrednich).
- Wypisać imiona, nazwiska pracowników, łączną
liczbę ich bezpośrednich i pośrednich podwładnych.
- Wypisać maksymalny okres (tzn. początek i koniec tego okresu),
w którym nikogo nie było w pracy (na podstawie tabeli
ListaObecnosci
).
Przyjmujemy, że zajmujemy się jedynie okresami zawartymi w
1.01.2000-31.12.2001.