http://www

Werbung
SQL, IV Tutorium, Uni-Linz
Ernst Rodlmayr
Seite - 1 -
1) Wie heißt der Kunde Nr. 14 mit Vor- und Nachnamen?
SELECT Vorname, Nachname
FROM Kunde
WHERE Nr = 14
2) Gesucht sind Nachname, Plz und Ort aller Kunden
SELECT Kunde.Nachname, PLZ.Plz, PLZ.Ort
FROM Kunde, PLZ
WHERE (PLZ.Plz = Kunde.Plz)
3) Gesucht sind alle Bücher mit Buchtitel, Verlag (= Kurzbez.), Name (= Langbez.)
SELECT Verlag.Name, Buch.Titel ,Buch.Verlag
FROM Verlag, Buch
WHERE (Verlag.Kurzbezeichnung = Buch.Verlag)
4) Wieviel Umsatz pro Buch (Preis * Menge) haben wir mit Auftrag Nr. 7 gemacht? Gesucht
sind Buchtitel, BuchNr, Umsatz pro Buch, Auftragsnummer
SELECT Buch.Titel, Buch.Nr, Artikel.Menge * Buch.Preis, Artikel.Auftragsnummer FROM
Buch, Artikel
WHERE (Buch.Nr=Artikel.Buchnummer)
AND Artikel.Auftragsnummer = 7
Hinweis: Buchhändler kaufen von einem Buch normalerweise größere Mengen. Umsatz pro
Buch = Preis des Einzelexemplars * Verkaufsmenge
5) Erweitern Sie Bsp 4 um eine absteigende Sortierung nach der Umsatzhöhe. Vergeben Sie
für den Umsatz pro Buch die Spaltenüberschrift „Umsatz“.
SELECT Buch.Titel, Buch.Nr, (Artikel.Menge*Buch.Preis)AS Umsatz,
Artikel.Auftragsnummer
FROM Buch, Artikel
WHERE (Buch.Nr=Artikel.Buchnummer)
AND Artikel.Auftragsnummer = 7 ORDER BY Umsatz DESC
Hinweis: Durch die Verwendung der Spaltenüberschrift Umsatz kann mit dieser Variable
weitergearbeitet werden (vgl. order by Umsatz)
6) Gesucht ist die Gesamteinkaufssumme des Auftrags Nr. 7. Die Spalten
Gesamteinkaufssumme und Auftragsnummer soll ausgegeben werden.
SELECT SUM(Artikel.Menge * Buch.Preis), Artikel.Auftragsnummer
FROM Buch, Artikel
WHERE (Buch.Nr = Artikel.Buchnummer)
GROUP BY Artikel.Auftragsnummer HAVING Artikel.Auftragsnummer = 7
Hinweis: HAVING ist eine Erweiterung der Group-by-Funktion und recht nützlich.
SQL, IV Tutorium, Uni-Linz
Ernst Rodlmayr
Seite - 2 -
ODER:
SELECT SUM(Artikel.Menge * Buch.Preis), Artikel.Auftragsnummer
FROM Buch, Artikel
WHERE (Buch.Nr = Artikel.Buchnummer)
AND Artikel.Auftragsnummer = 7
GROUP BY Artikel.Auftragsnummer
7) Gesucht ist die Gesamteinkaufssumme aller Auftragsnummern. Die Spalten
Gesamteinkaufssumme und Auftragsnummer soll ausgegeben werden.
SELECT SUM(Artikel.Menge * Buch.Preis), Artikel.Auftragsnummer
FROM Buch, Artikel
WHERE (Buch.Nr = Artikel.Buchnummer)
GROUP BY Artikel.Auftragsnummer
8) Zusätzlich zu Beispiel 7 soll noch der Vorname und Nachname des Kunden ausgegeben
werden.
SELECT Kunde.Vorname, Kunde.Nachname, SUM(Artikel.Menge * Buch.Preis),
Artikel.Auftragsnummer
FROM Buch, Artikel, Kunde, Auftrag
WHERE (Buch.Nr = Artikel.Buchnummer)
AND (Kunde.Nr = Auftrag.Kundennummer)
AND (Auftrag.Nr = Artikel.Auftragsnummer)
GROUP BY Artikel.Auftragsnummer
9) Welche Kunden haben zwischen 26. und 28. Jänner 2000 bei uns eingekauft?
Ausgegeben werden sollen die Felder Kundennummer und Nachname.
SELECT Auftrag.Kundennummer, Kunde.Nachname
FROM Kunde,Auftrag
WHERE (Kunde.Nr = Auftrag.Kundennummer)
AND Auftrag.Datum BETWEEN "2000-01-26" AND "2000-01-28"
10) Gesucht wird der
- maximale Buchpreis,
- minimale Buchpreis,
- durchschnittliche Buchpreis,
- die Summe aller Bucheinzelpreise sowie
- die Anzahl der gesamten Bücher in der Tabelle Buch
SELECT MIN(Preis), MAX(Preis), AVG(Preis), SUM(Preis), COUNT(Nr) FROM Buch
Herunterladen