2. Hausübung - SQL
Montag, 31. März 2008, 22:09
Die Aufgabenstellung verlangt die Durchführung von mind. 5 Abfragen mittels SQL mit steigendem Schwierigkeitsgrad, wobei die jeweilige Abfrage dokumentiert werden soll und die entsprechende SQL-Anweisung im Weblog angegeben werden muss.
Abfrage 1:
Es sind alle Verlage mit ihrem Namen anzugeben und alphabetisch zu sortieren.
Abfrage 2:
Es ist die Anzahl der Kunden je Bundesland anzugeben und aufgrund derrer Anzahl die Bundesländer absteigend zu sortieren.
Abfrage 3:
Es ist herauszufinden, welches die umsatzstärksten Bundesländer sind und aufgrund dessen eine absteigende Sortierung vorzunehmen.
Abfrage 4:
Bestseller: Es soll angegeben werden, wieviele Kunden ein Buch gekauft haben und wer der Autor des Buches ist.
Abfrage 5:
Premium-Käufer: Es soll eine Rangliste erstellt werden, bei der die Kunden, die Waren von gesamt mehr als 100.000,- gekauft haben, je nach Einkaufsvolumen absteigend sortiert werden.
Zur Wiederholung ein Link mit SQL-Befehlen und zur interaktiven Abfrage.
Abfrage 1:
Es sind alle Verlage mit ihrem Namen anzugeben und alphabetisch zu sortieren.
SELECT DISTINCT Name FROM Verlag ORDER BY 1 |
Abfrage 2:
Es ist die Anzahl der Kunden je Bundesland anzugeben und aufgrund derrer Anzahl die Bundesländer absteigend zu sortieren.
SELECT PLZ.Region,Count(Kunde.Nr) AS 'Kunden' FROM Kunde,PLZ WHERE (Kunde.Plz=PLZ.Plz) GROUP BY PLZ.Region ORDER BY 2 DESC |
Abfrage 3:
Es ist herauszufinden, welches die umsatzstärksten Bundesländer sind und aufgrund dessen eine absteigende Sortierung vorzunehmen.
SELECT PLZ.Region, SUM(Buch.Preis*Auftragspos.Menge) AS 'Umsatz' FROM PLZ,Kunde,Auftrag,Auftragspos,Buch WHERE (PLZ.Plz=Kunde.Plz) AND (Kunde.Nr=Auftrag.Kundennummer) AND (Auftrag.Nr=Auftragspos.Auftragsnummer) AND (Auftragspos.Buchnummer=Buch.Nr) GROUP BY PLZ.Region ORDER BY 2 DESC |
Abfrage 4:
Bestseller: Es soll angegeben werden, wieviele Kunden ein Buch gekauft haben und wer der Autor des Buches ist.
SELECT Count(Kunde.Nr) AS 'Anzahl der Kunden',Buch.Titel,Buch.Autor FROM Kunde,Auftrag,Auftragspos,Buch WHERE (Kunde.Nr=Auftrag.Kundennummer) AND (Auftrag.Nr=Auftragspos.Auftragsnummer) AND (Auftragspos.Buchnummer=Buch.Nr) GROUP BY Buch.Nr ORDER BY Count(Kunde.Nr) DESC, Autor |
Abfrage 5:
Premium-Käufer: Es soll eine Rangliste erstellt werden, bei der die Kunden, die Waren von gesamt mehr als 100.000,- gekauft haben, je nach Einkaufsvolumen absteigend sortiert werden.
SELECT Kunde.Nachname,Kunde.Vorname, SUM(Buch.Preis*Auftragspos.Menge) AS 'Gesamtwert der Einkäufe' FROM Kunde,Auftrag,Auftragspos,Buch WHERE (Kunde.Nr=Auftrag.Kundennummer) AND (Auftrag.Nr=Auftragspos.Auftragsnummer) AND (Auftragspos.Buchnummer=Buch.Nr) GROUP BY Kunde.Nr HAVING SUM(Buch.Preis*Auftragspos.Menge)>100000 ORDER BY 3 DESC |
Zur Wiederholung ein Link mit SQL-Befehlen und zur interaktiven Abfrage.