Lernblog von Franz Heinzl

Kommentare
das "mehr"-problem hat sich erledigt,... (Julia.Habich.Uni-Linz, 08. Jän)
funkt einwandfrei, nur... (Julia.Habich.Uni-Linz, 08. Jän)
Vorschau (reinhard.joechtl.Uni-Linz, 08. Jän)
Sehr gute Idee, werde ich auch... (patrick.fuehrer.Uni-Linz, 02. Apr)
Hallo, ich hab das RSS-Feed soeben... (Thomas.Penzinger.Uni-Linz, 20. Mär)
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.

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.

Kommentieren