Fachbereich Angewandte Informatik Dipl.-Inf. Christian Pape Datenbanksysteme 2 WS 11/12 4. Übung Aufgabe 1: Formulieren Sie die folgenden Ausdrücke in SQL: a.) Bestimme das Durchschnittsgehalt der Angestellten, die mehr als ihre Manager verdienen. SELECT AVG(P.PGEHALT) "Durchschnitt" FROM PERS P, PERS M WHERE P.MNR=M.PNR AND P.GEHALT>M.PGEHALT Durchschnitt 60000 b.) Welche Mitarbeiter (PNR, GEHALT) haben ein höheres Gehalt als Sioux und Apache zusammen verdienen? SELECT PNR, PGEHALT FROM PERS WHERE PGEHALT>(SELECT SUM(PGEHALT) FROM PERS WHERE PNAME IN (’Apache’,’Sioux’)) PNR 1 300 PGEHALT 100000 85000 c.) An wie vielen Orten (U_ORT) wurden Dramen uraufgeführt? SELECT COUNT(DISTINCT U_ORT) "Anzahl Uraufführungsorte" FROM DRAMA Uraufführungsorte 5 d.) An welchen Orten wurden mehr als zwei Dramen uraufgeführt? SELECT DISTINCT OUTER.U_ORT FROM DRAMA OUTER WHERE 2<(SELECT COUNT(*) FROM DRAMA INNER WHERE INNER.U_ORT=OUTER.U_ORT) ...oder auch: SELECT U_ORT FROM DRAMA GROUP BY U_ORT HAVING COUNT(*)>2 U_ORT Weimar e.) Welches Drama (Titel, U_JAHR) wurde zuerst aufgeführt? SELECT TITEL, U_JAHR FROM DRAMA WHERE U_JAHR=(SELECT MIN(U_JAHR) FROM DRAMA) TITEL Nathan U_JAHR 1779 Aufgabe 2: Formulieren Sie die folgenden Ausdrücke in SQL: a.) Für alle Projekte, die im Jahr 1994 begonnen wurden, sollen die Zahl der Arbeitsstunden und der durchschnittliche Zeitanteil der daran beteiligten Mitarbeiter bestimmt werden. Mitarbeiter der Abteilung Leitung sollen aber nicht berücksichtigt werden. SELECT JNR, SUM(STUNDEN) ARBEITSSTUNDEN, AVG(ZEIT_ANTEIL) ARBEITSANTEIL FROM MITARB WHERE JNR IN (SELECT JNR FROM PROJ WHERE TO_CHAR(JBEGINN,’YYYY’)=’1994’) AND PNR IN (SELECT PNR FROM PERS WHERE ANR IN (SELECT ANR FROM ABT WHERE ANAME!=’Leitung’)) GROUP BY JNR JNR 2 4 ARBEITSSTUNDEN 300 400 ARBEITSANTEIL 80 100 b.) Das Durchschnittsgehalt pro Abteilung aller Mitarbeiter unter 50 Jahren soll bestimmt werden. Darüber hinaus soll es in der jeweiligen Abteilung mehr als einen Mitarbeiter geben, der diese Bedingung erfüllt. SELECT ANR, AVG(PGEHALT) GEHALTSDURCHSCHNITT FROM PERS WHERE PALTER<50 GROUP BY ANR HAVING COUNT(*)>1 ANR 45 55 GEHALTSDURCHSCHNITT 53333.333 50000 Tabellen Dichter-DB: DICHTER DRAMA ROLLE AUTOR Schiller Goethe Kleist Lessing G_ORT Marbarch Frankfurt Kamenz Frankfurt TITEL Maria Stuart Wallenstein Tell Iphigenie Faust Zerbrochene Krug Nathan FIGUR Faust Mephisto Gretchen Wallenstein Piccolomini Tell Geßler Maria Stuart Elisabeth Iphigenie Nathan SCHAUSPIELER DARSTELLER U_ORT Weimar Jena Weimar Mannheim Frankfurt Weimar Bonn TITEL Faust Faust Faust Wallenstein Wallenstein Tell Tell Maria Stuart Maria Stuart Iphigenie Nathan PNR 1 2 3 4 5 6 7 8 PNR 1 1 2 2 2 2 4 4 4 5 5 G_JAHR 1759 1749 1777 1729 W_ORT Frankfurt Frankfurt Dresden Jena Berlin Frankfurt Marbach Bonn FIGUR Faust Wallenstein Faust Nathan Mephisto Tell Iphigenie Gretchen Maria Stuart Tell Piccolomini U_JAHR 1800 1799 1804 1783 1790 1806 1779 AUTOR Schiller Schiller Schiller Goethe Goethe Kleist Lessing R_GESCHLECHT Held Schurke Opfer Held Schurke Held Schurke Held Schurke Held Held NAME Schön Müller Beck Schiller George Mann Krug Platte A_ORT Jena Frankfurt Fulda Fulda Frankfurt Jena Berlin Kaiserslautern Jena Berlin Kaiserslautern A_JAHR 1991 1992 1990 1991 1992 1993 1991 1993 1992 1991 1992 THEATER Schillertheater Schauspiel Schloßtheater Schloßtheater TAT Schillertheater Theater des Westens Pfalztheater Schillertheater Theater des Westens Pfalztheater Tabellen PERS-DB: PERS ABT PROJ PNR 1 2 45 46 47 100 101 102 300 ANR 45 55 56 100 JNR 1 2 3 4 5 6 MITARB PNAME Bigboss Adlatus Miniboss Apache Sioux Gerneboss Cherokee Mohican Goldon PALTER 50 30 40 40 40 25 25 30 28 PGEHALT 100000 40000 80000 40000 40000 50000 60000 40000 85000 PBONUS 10000 10000 0 10000 15000 0 30000 0 0 MNR 1 1 45 45 1 100 100 1 ANR 56 56 45 45 45 55 55 55 100 ANAME Beschaffung Produktion Leitung Vertrieb JNAME Jahresabschluß NT 4.0 ABC-Analyse ISO 9000 - JNR 1 1 2 2 2 3 3 4 4 5 5 5 5 6 PNR 300 1 100 1 101 100 1 46 1 45 46 47 1 1 JMNR 300 100 100 46 - JBEGINN 01.09.1995 01.02.1994 05.06.1996 01.01.1994 15.06.1996 - ZEIT_ANTEIL 100 20 80 5 80 20 2 100 10 - JENDE 31.07.1996 20.06.1995 - STUNDEN 200 100 200 50 400 10 50 40 - JSITZUNG 10:30 11:00 8:00 14:00 -