Ü8.1.1 MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, Firebird, MS Access, OpenOffice.org Base SELECT AVG(k.Gebuehr) FROM tbkurs k; Ü8.1.2 MySQL, PostgreSQL, SQL Server, Oracle, Firebird, MS Access, OpenOffice.org Base SELECT k2.KID, k2.Gebuehr FROM tbkurs k2 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k); Ü8.1.3 MYSQL, MariaDB, MS Access, Oracle, Firebird UPDATE tbdozent d SET d.Stundensatz = d.Stundensatz * 1.1 WHERE EXISTS (SELECT * FROM tbkurs k2 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k) AND (k2.DID = d.DID)); PostgreSQL UPDATE tbdozent d SET Stundensatz = d.Stundensatz * 1.1 WHERE EXISTS (SELECT * FROM tbkurs k2 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k) AND (k2.DID = d.DID)); SQL Server UPDATE tbdozent SET tbdozent.Stundensatz = tbdozent.Stundensatz * 1.1 WHERE EXISTS (SELECT * FROM tbkurs k2 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k) AND (k2.DID = tbdozent.DID)); OpenOffice.org Base UPDATE "tbDozent" d SET d."Stundensatz" = d."Stundensatz" * 1.1 WHERE EXISTS (SELECT * FROM "tbkurs" k2 WHERE k2."Gebuehr" > (SELECT AVG(k."Gebuehr") FROM "tbkurs" k) AND (k2."DID" = d."DID")); Ü8.1.4 MS Access, Oracle, Firebird UPDATE tbkurs k2 SET k2.Gebuehr = k2.Gebuehr * 0.9 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k); PostgreSQL UPDATE tbkurs k2 SET Gebuehr = k2.Gebuehr * 0.9 WHERE k2.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k); SQL Server UPDATE tbkurs SET tbkurs.Gebuehr = tbkurs.Gebuehr * 0.9 WHERE tbkurs.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k); UPDATE tbkurs SET Gebuehr = tbkurs.Gebuehr * 0.9 WHERE tbkurs.Gebuehr > (SELECT AVG(k.Gebuehr) FROM tbkurs k); Funktioniert nicht in MySQL und OpenOffice.org Base, da sich der Update auf dieselbe Tabelle wie die Unterabfrage bezieht, was hier verboten ist. Ü8.2.1 MySQL, MariaDB, PostgreSQL, SQL Server INSERT INTO tbDozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) (SELECT 835, p.PID, '2009-01-01', 15, 'selbstständig',NULL,NULL FROM tbperson p WHERE (p.Familienname = 'Plate') AND (p.Vorname = 'Ulrich')); MS Access, Firebird INSERT INTO tbDozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) SELECT 835, p.PID, '2009-01-01', 15, 'selbstständig',NULL,NULL FROM tbperson p WHERE (p.Familienname = 'Plate') AND (p.Vorname = 'Ulrich'); Oracle INSERT INTO tbDozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) (SELECT 835, p.PID, '01.01.2009', 15, 'selbstständig',NULL,NULL FROM tbperson p WHERE (p.Familienname = 'Plate') AND (p.Vorname = 'Ulrich')); OpenOffice.org Base INSERT INTO "tbDozent" ("DID", "PID", "Beschaeftigungsbeginn", "Stundensatz", "Firma", "Titel", "Qualifikationen") (SELECT 835, p."PID", '2009-01-01', 15, 'selbstständig',NULL,NULL FROM "tbPerson" p WHERE (p."Familienname" = 'Plate') AND (p."Vorname" = 'Ulrich')); Ü8.2.2 MySQL INSERT INTO tbdozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) (SELECT 836, p.PID, CURDATE(), (SELECT AVG(d2.Stundensatz) FROM tbdozent d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM tbperson p WHERE (p.Familienname = 'Magerkurth') AND (p.Vorname = 'Melissa')); PostgreSQL, Oracle INSERT INTO tbdozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) (SELECT 836, p.PID, CURRENT_DATE, (SELECT AVG(d2.Stundensatz) FROM tbdozent d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM tbperson p WHERE (p.Familienname = 'Magerkurth') AND (p.Vorname = 'Melissa')); SQL Server INSERT INTO tbdozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) (SELECT 836, p.PID, GETDATE(), (SELECT AVG(d2.Stundensatz) FROM tbdozent d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM tbperson p WHERE (p.Familienname = 'Magerkurth') AND (p.Vorname = 'Melissa')); Firebird INSERT INTO tbdozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) SELECT 836, p.PID, CURRENT_DATE, (SELECT AVG(d2.Stundensatz) FROM tbdozent d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM tbperson p WHERE (p.Familienname = 'Magerkurth') AND (p.Vorname = 'Melissa'); MS Access INSERT INTO tbdozent (DID, PID, Beschaeftigungsbeginn, Stundensatz, Firma, Titel, Qualifikationen) SELECT 836, p.PID, NOW(), (SELECT AVG(d2.Stundensatz) FROM tbdozent d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM tbperson p WHERE (p.Familienname = 'Magerkurth') AND (p.Vorname = 'Melissa'); OpenOffice.org Base INSERT INTO "tbDozent" ("DID", "PID", "Beschaeftigungsbeginn", "Stundensatz", "Firma", "Titel", "Qualifikationen") (SELECT 836, p."PID", NOW(), (SELECT AVG(d2."Stundensatz") FROM "tbDozent" d2), 'Dreher KG','Leiterin Buchhaltung','Windows und Buchhaltung' FROM "tbPerson" p WHERE (p."Familienname" = 'Magerkurth') AND (p."Vorname" = 'Melissa')); Ü8.3.1 MySQL, PostgreSQL, SQL Server, Oracle, Firebird, MS Access, OpenOffice.org Base SELECT k.DID, MAX(k.Gebuehr) FROM tbkurs k GROUP BY k.DID HAVING MAX(k.Gebuehr) <= 200; Ü8.3.2 MySQL, PostgreSQL, Oracle DELETE FROM eingesetzterdozent WHERE EXISTS (SELECT k.DID FROM tbkurs k GROUP BY k.DID HAVING (MAX(k.Gebuehr) <= 200) AND (k.DID = eingesetzterdozent.DID)); SQL Server, Firebird, MS Access, OpenOffice.org Base Tabelle kann nicht erzeugt werden. Ü8.3.3 MySQL, PostgreSQL, Oracle DELETE FROM unbearbeiteteThemen WHERE unbearbeiteteThemen.Kursthema IN (SELECT kt.Kursthema FROM tbkursthema kt WHERE kt.Voraussetzung = 7); SQL Server, Firebird, MS Access, OpenOffice.org Base Tabelle kann nicht erzeugt werden.