AND Auftrag.Nr=Auftragspos.Auftragsnummer

Werbung
PLZ.Plz=Kunde.Plz
Kunde.Nr=Auftrag.Kundennummer
Auftrag.Nr=Auftragspos.Auftragsnummer
Auftragspos.Buchnummer=Buch.Nr
Buch.Verlag=Verlag.Kurzbezeichnung
PLZ.Plz=Verlag.Plz
Verlag.Kurzbezeichnung=Buch.Verlag
Buch.Nr=Auftragspos.Buchnummer
Auftragspos.Auftragsnummer=Auftrag.Nr
Auftrag.Kundennummer=Kunde.Nr
Kunde.Plz=PLZ.Plz
Umsätze
UMSATZ von 2000 nach Monaten
SELECT MONTH(Auftrag.Datum) AS "Monat", Round(SUM(Auftragspos.Menge*Buch.Preis), 2) AS "Umsatz"
FROM Auftrag, Auftragspos, Buch
WHERE Auftrag.Nr=Auftragspos.Auftragsnummer
AND Auftragspos.Buchnummer=Buch.Nr
[[AND Auftrag.Datum LIKE "2000%" oder and Year(Auftrag.Datum)=2000 oder AND Auftrag.Datum BETWEEN
'2000.01.01' AND '2000.12.31']]
GROUP BY MONTH(Auftrag.Datum)
ORDER BY 1
Jahresumsatz je Verlag
SELECT Verlag.Kurzbezeichnung AS 'Verlag', YEAR(Auftrag.Datum) AS 'Jahr',
ROUND(SUM(Auftragspos.Menge*Buch.Preis),2) AS 'Umsatz' FROM Auftragspos, Buch, Auftrag, Verlag
WHERE Auftrag.Nr=Auftragspos.Auftragsnummer
AND Auftragspos.Buchnummer=Buch.Nr
AND Buch.Verlag=Verlag.Kurzbezeichnung
AND Verlag.Kurzbezeichnung='ha'
GROUP BY YEAR(Auftrag.Datum), Verlag.Kurzbezeichnung
Umsätze je Auftrag
SELECT Kunde.Nr AS "Kundennummer", Kunde.Nachname, Auftrag.Nr AS "Auftragsnummer",
ROUND(SUM(Auftragspos.Menge*Buch.Preis),2) AS "Umsatz"
FROM Kunde, Auftrag, Auftragspos, Buch
WHERE Kunde.Nr=Auftrag.Kundennummer
AND Auftrag.Nr=Auftragspos.Auftragsnummer
AND Auftragspos.Buchnummer=Buch.Nr
GROUP BY 1,2,3
Umsätze je Kunde
SELECT PLZ.Ort, Kunde.Nr AS "Kundennummer",
Kunde.Nachname,ROUND(SUM(Auftragspos.Menge*Buch.Preis),2) 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 1,2,3
ORDER BY 1
Umsätze je Region
SELECT PLZ.Region, ROUND(SUM(Auftragspos.Menge*Buch.Preis),2) 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 1
ORDER BY 1
Umsätze je Verlag
SELECT Verlag.Name,ROUND(SUM(Auftragspos.Menge*Buch.Preis),2) AS "Umsatz"
FROM Verlag, Auftragspos, Buch
WHERE Verlag.Kurzbezeichnung=Buch.Verlag
AND Buch.Nr=Auftragspos.Buchnummer
GROUP BY 1
ORDER BY 1
Alle Operatoren (SUM, COUNT, MIN, MAX, AVG) brauchen immer ein Group By !
Das Teuerste Buch
SELECT Autor, MAX(Preis) AS Hochster_Preis
FROM Buch
WHERE Autor = 'Arge'
GROUP BY Autor
Mit der Funktion MAX wird der hochste Wert der Tabelle bestimmt. Jedoch nur dieser eine Wert!
Wenn Sie die Tabelle beschriften, so achten Sie bitte auf den Unterstrich (keine Leerzeichen!!)
Das billigste Buch
SELECT Autor, MIN(Preis) AS Niedrigster_Preis
FROM Buch
WHERE Autor LIKE '%Bieler%'
GROUP BY Autor
Da der Autor „Bieler“ alle seine Bucher in Co-Produktion verfasst hat, muss unbedingt ein LIKE
vorkommen! Mit der Funktion MIN wird der kleinste Wert der Tabelle bestimmt.
Durchschnittlicher Buchpreis
SELECT Titel, AVG(Preis) AS Durchschnittlicher_Preis
FROM Buch
WHERE Titel LIKE '%rechnen%'
GROUP BY Titel
Preis aller Bücher eines Autors
SELECT Autor, SUM(Preis) AS Gesamtpreis
FROM Buch
WHERE Autor LIKE '%Muellner%'
GROUP BY Autor
Datumseinschränkung
SELECT Nr AS Auftragsnummer, Datum AS Verkaufsdatum, Kundennummer
FROM Auftrag
WHERE Nr > 600
AND Datum BETWEEN '2000-09-13' AND '2000-10-13'
AND Kundennummer = 240
Anzahl gekaufter Bücher
SUM(Auftragspos.Menge)
Gesamtanzahl der Bestellungen, die unsere Kunden getätigt haben.
COUNT(Auftrag.Nr) AS Bestellungen
Summe verkaufter Bücher - Verkaufsmengen
SUM(Auftragspos.Menge) AS "verkaufteBücher"
Fehlbestände
Die Fehlbestände in Stk berechnen sich: SUM(Buch.Bestand)-SUM(Auftragspos.Menge)
Wenn wir jetzt den Fehlbestand in Euro berechnen wollen, müssen wir die Abfrage mit dem Preis
ergänzen: SUM(Buch.Bestand*Buch.Preis)-SUM(Auftragspos.Menge*Buch.Preis)
Adressliste
Ermitteln Sie eine vollständige Adressliste der Wiener Verlage, bzw. der Region „W“. Achten Sie auf angemessene
Spaltenüberschriften.
SELECT Verlag.Name AS 'Verlagsname', Verlag.Strasse, Verlag.Plz AS 'PLZ', PLZ.Ort, PLZ.Region
FROM PLZ,Verlag
WHERE PLZ.Plz=Verlag.Plz
AND PLZ.Ort="Wien"
ORDER BY Verlag.Name ASC
Firmensitz Wieviele Bücher werden in XY aufgelegt
Wie viele Bücher werden in der Region Wien (W) „aufgelegt“, bzw. von Verlagen, mit Firmensitz in der Region Wien
angeboten?
SELECT PLZ.Region, Verlag.Name, Count(Buch.Nr)AS "Buchanzahl"
FROM PLZ, Verlag, Buch
where PLZ.Plz=Verlag.Plz
and Verlag.Kurzbezeichnung=Buch.Verlag
and PLZ.Region="w"
group by 1,2
Autoren – die meisten verkauften Bücher
Welche Autoren haben die meisten Bücher verkauft? Erstellen Sie eine Liste der Autoren (Bücher ohne Autoren
zählen nicht) und die Anzahl der verkauften Exemplare. Die Liste soll nur Autoren enthalten, von denen mehr als
4000 Exemplare verkauft wurden. Sortieren Sie das Ergebnis absteigend nach Verkaufszahlen.
SELECT Buch.Autor AS "Autor", SUM(Auftragspos.Menge) AS "Anzahl verkaufter Bücher"
FROM Buch, Auftragspos
WHERE Buch.Nr=Auftragspos.Buchnummer
AND Buch.Autor LIKE '%'
GROUP BY Buch.Autor
HAVING SUM(Auftragspos.Menge)>4000
ORDER BY SUM(Auftragspos.Menge)DESC
Einkauf – Preis aller Bücher von Autor
Wie viel müssten Sie bezahlen wenn Sie alle Bücher des Autors „Arge“ aufkaufen würden?
SELECT Autor, ROUND(SUM(Preis),2)AS Gesamtpreis
FROM Buch
WHERE Autor LIKE 'Arge'
GROUP BY Autor
Anzahl Nachnamen – keine Doppelzählungen DISTINCT
Sie möchten wissen wie viele unterschiedliche Nachnamen die Kunden in der Datenbank haben. Jeder Nachname
soll nur ein Mal gezählt werden. Die Spalte in der die Anzahl ausgegeben wird soll „Anzahl der Namen“ heißen.
SELECT COUNT(DISTINCT Nachname) AS "Anzahl der Namen" FROM Kunde
Lagerwert – je Verlag und Region:
Ermitteln Sie den Bestand und den Lagerwert (Bestand * Preis) der naturwissenschaftlichen Bücher, je
Verlag (Kurzbezeichnung) und fügen Sie die Region des Verlages hinzu. Runden Sie den Lagerwert auf
zwei Nachkommastellen und sortieren Sie das Ergebnis nach dem Lagerwert, absteigend.
SELECT PLZ.Region, Verlag.Kurzbezeichnung, Count(Buch.Bestand),
Round(Sum(Buch.Bestand*Buch.Preis),2)as "Lagerwert"
from Verlag, Buch, PLZ
where PLZ.Plz=Verlag.Plz
and Verlag.Kurzbezeichnung=Buch.Verlag
group by 1,2
order by Sum(Buch.Bestand*Buch.Preis) desc
Herunterladen