2. Aufgabe - SQL-Abfragen
Am Montag, 3. Nov 2008
Tja, also dies sind meine SQL-Abfragen - ich hab auch versucht die eine oder andere etwas zu verschachteln.. Ich hoffe die sind so ok. =) Vielleicht wollt ihr diese Abfragen mal versuchen. Einfach auf den "Ausführen"-Button klicken! Viel Spaß! ;)
Für weitere knifflige Abfragen bin ich immer offen! =)
1. Abfrage: Ich möchte eine Liste mit allen meinen Kunden. Angegeben sollen der Nachname und der Vorname sein, wobei ein Vorname nur einmal vorkommen soll. | |
FROM Kunde |
2. Abfrage: Welche Orte beginnend mit der Postleitzahl 4xxx befinden sich nicht in Oberösterreich?(Jaaa, solche gibts auch! =) ) | |
Die Abfrage sieht dann folgender Maßen aus:
SELECT PLZ.Plz, PLZ.Ort, PLZ.Region FROM PLZ WHERE PLZ.Plz LIKE '4%' AND PLZ.Region NOT LIKE 'O' |
3. Abfrage: Interessant wäre eine Liste mit der Anzahl der Kunden je Region. Die Beschriftung soll folgendermaßen aussehen: „Bundesland“ und „Kundenanzahl“ (diese sollte absteigend sortiert sein, nach der Anzahl der Kunden) | |
Die Abfrage sieht dann folgender Maßen aus:
SELECT COUNT(Kunde.Nachname) AS Kundenanzahl, PLZ.Region AS Bundesland FROM Kunde, PLZ WHERE Kunde.Plz=PLZ.Plz GROUP BY PLZ.Region ORDER BY Kundenanzahl DESC |
4. Abfrage: Interessant wäre eine Liste mit der Anzahl der Kunden je Region. Die Beschriftung soll Ich möchte von einem einzelnen Kunden (bspw. vom Kunden "Venus")wissen wie viel er insgesamt ausgegeben hat. | |
Die Abfrage sieht dann folgender Maßen aus:
SELECT SUM(Auftragspos.Menge*Buch.Preis) AS Ausgaben FROM Kunde, Auftrag, Auftragspos, Buch WHERE Kunde.Nr=Auftrag.Kundennummer AND Auftragspos.Auftragsnummer=Auftrag.Nr AND Auftragspos.Buchnummer=Buch.Nr AND Kunde.Nachname = 'Venus' ORDER BY Nachname |
5. Abfrage: Von welchen Verlagen vertreibe ich mehr als 10 Titel? Genau wissen möchte ich den Namen des Verlages und die Anzahl der Titel! | |
Die Abfrage sieht dann folgender Maßen aus:
SELECT COUNT(Buch.Titel) AS Anzahl, Verlag.Name FROM Buch, Verlag WHERE Buch.Verlag=Verlag.Kurzbezeichnung GROUP BY Verlag.Name HAVING Anzahl>10 |
6. Abfrage: Es würde mich interessieren, wo (in welchem Ort, welcher Postleitzahl) es einen Umsatz gibt, der höher als 100.000 ist?</ | |
Die Abfrage sieht dann folgender Maßen aus:
SELECT SUM(Buch.Preis*Auftragspos.Menge) AS Umsatz, PLZ.Ort, PLZ.Plz FROM Kunde, Buch, PLZ, Auftragspos, Auftrag WHERE Buch.Nr=Auftragspos.Buchnummer AND Auftragspos.Auftragsnummer=Auftrag.Nr AND Auftrag.Kundennummer=Kunde.Nr AND Kunde.Plz=PLZ.Plz GROUP BY PLZ.Plz HAVING Umsatz>100000 |
Für weitere knifflige Abfragen bin ich immer offen! =)
claudi217,
Sonntag, 7. Dezember 2008, 19:43
Hallo!
Ich habe gerade erst begonnen SQL zu lernen. Leider hab ich damit einige Schwierigkeiten. Kannst du mir vl weiterhelfen?
Ich habe folgendes Datenmodell http://www.imgbox.de/?img=k43160z255.jpg
und daraus muss ich nun folglich diese Tabellen erstellen
http://www.imgbox.de/?img=b10533p255.jpg
Wäre echt richtig toll wenn du mir weiterhelfen könntest:)
LG
Ich habe gerade erst begonnen SQL zu lernen. Leider hab ich damit einige Schwierigkeiten. Kannst du mir vl weiterhelfen?
Ich habe folgendes Datenmodell http://www.imgbox.de/?img=k43160z255.jpg
und daraus muss ich nun folglich diese Tabellen erstellen
http://www.imgbox.de/?img=b10533p255.jpg
Wäre echt richtig toll wenn du mir weiterhelfen könntest:)
LG
Ursula.Wagner.Uni-Linz,
Dienstag, 9. Dezember 2008, 17:25
Hey!
Also ich hab mich mal daran versucht, hab aber leider keine Möglichkeit, das ich es kontrolliere bzw. kann ich dir keine 100%ige Garantie für die Richtigkeit geben. Meiner Meinung nach ist diese Datenbank noch nicht ganz ausformuliert, ich würde noch genauere Beschreibungen für Lehrverantstaltung, Raum, etc brauchen...es muss ja einen Primärschlüssel geben (sozusagen einen Verbindungs-/Anküpfungspunkt) mit dem wir die unterschiedlichen Mini-Datenbanken verknüpfen. =)
Ich hoffe mein Vorschlag für die erste Tabelle hilft dir weiter!
SELECT Lehrveranstaltung.Lehrverantstaltungs-Nr., Lehrveranstaltung.Dauer, Raum.Raum Nr.
FROM Lehrveranstaltung, Raum
WHERE Raum.Raum Nr. = Raum.Lehrveranstaltung
Herr Prof. Mittendorfer hat uns eine ziemlich gute Beschreibung bezügl. relationalen Datenbanken auf seinen Webblog zur Verfügung gestellt. Vielleicht möchtest du einen Blick darauf werfen.
lg Uschi
Also ich hab mich mal daran versucht, hab aber leider keine Möglichkeit, das ich es kontrolliere bzw. kann ich dir keine 100%ige Garantie für die Richtigkeit geben. Meiner Meinung nach ist diese Datenbank noch nicht ganz ausformuliert, ich würde noch genauere Beschreibungen für Lehrverantstaltung, Raum, etc brauchen...es muss ja einen Primärschlüssel geben (sozusagen einen Verbindungs-/Anküpfungspunkt) mit dem wir die unterschiedlichen Mini-Datenbanken verknüpfen. =)
Ich hoffe mein Vorschlag für die erste Tabelle hilft dir weiter!
SELECT Lehrveranstaltung.Lehrverantstaltungs-Nr., Lehrveranstaltung.Dauer, Raum.Raum Nr.
FROM Lehrveranstaltung, Raum
WHERE Raum.Raum Nr. = Raum.Lehrveranstaltung
Herr Prof. Mittendorfer hat uns eine ziemlich gute Beschreibung bezügl. relationalen Datenbanken auf seinen Webblog zur Verfügung gestellt. Vielleicht möchtest du einen Blick darauf werfen.
lg Uschi
claudi217,
Dienstag, 9. Dezember 2008, 18:03
DANKE:)