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