next up previous index
Weiter: 7 Sortieren der Ergebnisdaten Hoch: 7 Kurzeinführung in SQL Zurück: 2 Erweiterte SQL-Abfragen über

6 SQL-Abfragen über mehrere Tabellen

Die Stärke von SQL-Abfragen wird deutlich, wenn mehrere Tabellen in den SELECT-Befehl einbezogen werden. Diese Form besitzt die Syntax:

%
[commandchars=\\\{\},fontfamily=courier] 
SELECT \textit{feldliste} FROM \textit{tabellenliste} WHERE optionale Bedingungen

Letztendlich hat sich gegenüber der einfachen SELECT-Abfrage über eine Tabelle nichts geändert. In der Feldliste müssen Sie lediglich den Tabellennamen, getrennt durch einen Punkt, vor den Feldnamen stellen. In Abb. 1.51 sehen Sie das Fenster des Abfrageentwurfs, wobei im unteren Teil das SQL-Kommando zur Berechnung der Rechnungssummen von Bestellungen über die Bestellverwaltung aufgeführt ist. Im oberen Teil finden Sie die Ergebnistabelle.

Der SQL-Befehl fragt die Bestellnummer, das Lieferdatum sowie die Kundendaten (Kundennummer, Name und Vorname) ab und berechnet auch den Gesamtpreis über alle Rechnungspositionen einer Bestellung (Tabelle Bestelldetails). Diese Abfrage haben Sie bereits weiter oben im Zusammenhang mit der Design-Ansicht kennen gelernt. Die Anweisungen zwischen SELECT und FROM geben die durch Kommas getrennten Felder für die Ergebnisliste an. Beim Gesamtpreis kommt ein Aliasname über AS sowie die SUM-Funktion zum Einsatz. Als Parameter der SUM-Funktion wird der Ausdruck zur Berechnung des Gesamtpreises einer Bestellposition benutzt. Es wird einfach die Bestellmenge aus der Tabelle Bestelldetails mit dem Preis aus der Tabelle Produkt multipliziert. Die FROM-Klausel gibt dann die Namen der in die Abfrage einzubeziehenden Tabellen an.

Nun müssen noch die Beziehungen zwischen den involvierten Tabellen in der SQL-Anweisung definiert werden. Hier kommt die bereits aus den früheren Abschnitten bekannte WHERE-Klausel zum Einsatz. Eine Beziehung wird einfach durch die folgende Angabe definiert:

Bestellung.KdNr = Kunde.KdNr

\begin{figure}\htmlimage
\spfiglii{0.7}{Bld20_46.eps}{Abfrage über mehrere Tabellen zur Ermittlung des Gesamtpreises}{_Ref63749199}
\end{figure}

Damit wird eine Beziehung über das Feld KdNr zwischen den Tabellen Bestellung und Kunde vereinbart - also auch nichts Kompliziertes. Mehrere Beziehungen sind einfach durch das Schlüsselwort AND zu trennen. Die betreffenden Bedingungen stehen dabei in runden Klammern. Neu ist noch die GROUP-Funktion in der letzten Zeile des SQL-Befehls. Diese Funktion gruppiert die Datensätze nach den Kundennummern und bewirkt, dass die SUM-Funktion die Gesamtsumme pro Bestellung ermittelt (Abb. 1.51).

Hinweis: Beachten Sie aber, dass die von Base standardmäßig benutzte HSQL"=Datenbank die obige Abfrage nicht unterstützt - Sie bekommen einen SQL-Fehler beim Ausführen der Abfrage.


next up previous index
Next: 7 Sortieren der Ergebnisdaten Up: 7 Kurzeinführung in SQL Previous: 2 Erweiterte SQL-Abfragen über
Nicolaus Millin
2007-08-11