Exercice: Advanced-SQL Queries based on DB Verlag-Solution

1. "Gesucht sind die ISBN und Titel der Bücher, die nicht verkauft wurden."

Select ISBN, Titel From Buch Where ISBN <> All (Select ISBN From Verkauf);     oder

Select ISBN, Titel From Buch Where ISBN Not IN (Select ISBN From Verkauf);

 

2. "Gesucht sind die ISBN und Titel der Bücher, die  verkauft wurden."

Select ISBN, Titel From Buch Where ISBN = Any (Select ISBN From Verkauf);    oder

Select x.ISBN, x.Titel From Buch x, Verkauf y Where x.ISBN=y.ISBN;   oder

Select ISBN, Titel From Buch Where ISBN IN (Select ISBN From Verkauf);

 

3. Gesucht sind die Namen der Lektoren, von denen bislang keine betreuten Bücher verkauft wurden."

Select Name From Person Where Kuerzel IN (Select Kuerzel From Lektor Where Kuerzel IN (Select Lektor From Buch Where ISBN Not IN  (Select ISBN From Verkauf)));

4. Gesucht sind die ISBN der Bücher mit überdurchschnittlicher verkaufter Anzahl."

Select ISBN from Verkauf where Anzahl > (Select AVG(Anzahl) From Verkauf);

 

5. Gesucht werden die Name der Lektoren, deren Gehalt über dem Durchschnittsgehalt der Lektoren liegt, die Bücher mit überdurchschnittlichen Verkaufszahlen betreut haben."

Select Name From Person, Lektor Where Lektor.Kuerzel=Person.Kuerzel and Gehalt > (Select AVG(Gehalt) From Lektor L, Verkauf V, Buch B Where B.Lektor=L.Kuerzel and B.ISBN=V.ISBN and V.Anzal > (Select AVG (Anzahl) From Verkauf));

 

6. "Gesucht sind die Kürzel der Lektoren, die mehr verdienen als ihre Chefs".

Select x.Kuerzel from Lektor x Join Lektor y on (x.Gehalt > y.Gehalt and x.Chef=y.Kuerzel);    oder

Select x.Kuerzel From Lektor x, Lektor y Where x.Gehalt > y.Gehalt and x.Chef=y.Chef;

 

7.  "Gesucht sind Namen und Ort der Buchhandlungen, die Bücher von Lektorin Trude Heimlicher verkaufen".

Select Distinct x.Name, x.Ort From Verkauf x, Lektor y, Person z, Buch u Where u.Lektor=y.Kuerzel and u.ISBN = x.ISBN and y.Kuerzel=z.Kuerzel and z.Name='Heimlicher Trude';

 

8. "Gesucht sind die Bücher, die bisher nicht verkauft wurden."

Select ISBN From Buch except Select ISBN From Verkauf;

 

9. "Gesucht sind der ISBN der Bücher aus den Relationen Buch und Verkauf."

Select ISBN From Buch Union Select ISBN From Verkauf;

 

10. "Gesucht sind die ISBN der Bücher, die von mehr als einem Autor bearbeitet werden."

Select ISBN From Autor Group by ISBN Having Count(*) > 1;

 

11. "Gesucht sind die ISBN der Bücher, von denen in einem Monat mehr als 50 Exemplare verkauft wurden."

Select ISBN, Monat From Verkauf Group By ISBN, Monat Having Sum(Anzahl) >50;

 

12. Geben Sie eine umgangssprachliche Formulierung für folgende Anfrage an:

Select x.Name, x.Ort From Verkauf x Where  Not exists ( Select * from Verkauf y Where x.Name = y.Name and x.Ort = y.Ort and Not exists ( Select * From Buch z Where y.ISBN=z.ISBN and Fachgeb = 'Datenbanken'));

 

"Gesucht sind Name und Ort der Buchhandlungen, die nur Bücher zum Fachgebiet Datenbanken verkaufen"