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