Donnerstag, 30. Oktober 2008
Aufgabe 2
Bei unserer 2. Aufgabe sollen wir unsere SQL-Kenntnisse unter Beweis stellen. Dazu habe ich sechs Abfragen vorbereitet, in denen verschiedenste Attribute vorkommen.

Meine Abfragen:

1. Eine Liste aller Autoren vom Verlag „Manz“ (bzw. Verlag, der „manz“ beinhaltet), aufsteigend sortiert nach Autor, jeder Autor wird nur einmal aufgezählt

SELECT DISTINCT Buch.Autor
FROM Buch, Verlag
WHERE Verlag.Kurzbezeichnung=Buch.Verlag
AND Verlag.Name LIKE '%manz%'
ORDER BY Buch.Autor ASC


2. Eine Liste aller Kunden, die in einem Ort wohnen, der „see“ beinhaltet, absteigend sortiert nach dem Nachnamen der Kunden

SELECT Kunde.Vorname, Kunde.Nachname, PLZ.Ort
FROM Kunde, PLZ
WHERE PLZ.Plz=Kunde.Plz
AND PLZ.Ort LIKE '%see%'
ORDER BY Kunde.Nachname DESC


3. Eine Liste aller Kunden mit Kundennummer, Vorname und Nachname, deren Kundennummer mit 8 beginnt, jeder Kunde wird nur einmal aufgezählt

SELECT DISTINCT Auftrag.Kundennummer,Kunde.Vorname, Kunde.Nachname
FROM Kunde, Auftrag
WHERE Kunde.Nr=Auftrag.Kundennummer
AND Auftrag.Kundennummer LIKE '8%'


4. Eine Liste aller Bücher mit Autor, die vom Kunden „Lutz“ bestellt wurden

SELECT Kunde.Nachname, Buch.Titel, Buch.Autor
FROM Kunde, Auftrag, Auftragspos, Buch
WHERE Kunde.Nr=Auftrag.Kundennummer
AND Auftrag.Nr=Auftragspos.Auftragsnummer
AND Auftragspos.Buchnummer=Buch.Nr
AND Kunde.Nachname ='Lutz'


5. Eine Liste über die Anzahl der Kunden pro Region, absteigend sortiert nach der Anzahl der Kunden

SELECT COUNT(*) 'Anzahl der Kunden', PLZ.Region
FROM Kunde, PLZ
WHERE PLZ.Plz=Kunde.Plz
GROUP BY PLZ.Region
ORDER BY 1 desc


6. Eine Liste über die Anzahl der Bücher pro Verlag; es werden nur jene Verlage angezeigt, von denen unsere Buchhandlung mehr als 100 Bücher hat; Liste absteigend sortiert nach der Anzahl der Bücher

SELECT COUNT(*) 'Anzahl der Bücher', Verlag.Name
FROM Buch, Verlag
WHERE Verlag.Kurzbezeichnung=Buch.Verlag
GROUP BY Verlag.Name
HAVING COUNT(*) > 100
ORDER BY 1 DESC

Permalink (4 Kommentare)   Kommentieren