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:

  1. 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.
  2. 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.
  3. Wypisać id, imię i nazwisko tych osób, które nigdy nie pojawiły się w pracy.
  4. 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ą.
  5. 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.
  6. Wypisać pracowników (imię + nazwisko), którzy mają co najmniej dwóch podwładnych (pośrednich lub bezpośrednich).
  7. Wypisać imiona, nazwiska pracowników, łączną liczbę ich bezpośrednich i pośrednich podwładnych.
  8. 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.