next up previous index
Weiter: 4 Abfrageergebnisse gruppieren und Hoch: 6 Abfragen über mehrere Zurück: 1 Anmerkungen zur referenziellen

3 Abfragebeispiel über mehrere Tabellen

Sobald die Beziehungen im Designer vereinbart wurden, können Sie eine Abfrage über den Kriterienbereich entwerfen. Dies soll hier an der im vorherigen Kapitel entworfenen Tabellenstruktur der Bestellabwicklung demonstriert werden. Die Tabelle Bestellung enthält die unterschiedlichen Aufträge. Diese sollen nun in einer Abfrage als Liste ausgegeben werden, wobei die Bestellnummer, das Lieferdatum, das Produkt, die Menge, der Preis, der Gesamtpreis sowie die Kundennummer samt Kundendaten aufgelistet werden. Als Kundendaten werden hier nur Name und Vorname eingeblendet; eine Erweiterung um die Adressdaten ist jederzeit auf die hier demonstrierte Weise möglich.

  1. Ziehen Sie das Feld BestNr aus der Tabelle Bestellung zur ersten Spalte des Kriterienbereichs. Alternativ können Sie in der Zeile Tabelle die Tabelle Bestellung über das Listenfeld auswählen und dann im Listenfeld der Zeile Feld den Feldnamen BestNr wählen.
  2. Fügen Sie in der zweiten Spalte und in den weiteren Spalten das Lieferdatum, die Produktnummer, die Liefermenge und den Preis gemäß Abb. 1.43 ein.
  3. Geben Sie in der nächsten Spalte die Rechenvorschrift für den Gesamtpreis als Produkt zwischen "`Bestelldetails.Menge"' und "`Produkt.Preis"' ein. Hierbei müssen Sie jeweils den Tabellennamen getrennt durch einen Punkt mit dem Feldnamen kombinieren. Nur so erkennt Base zuverlässig, welche Tabellenfelder in der Abfrage zu verwenden sind.
  4. Ergänzen Sie die restlichen Spalten des Kriterienbereichs um die gewünschten Felder der anderen Tabellen.

\begin{figure}\htmlimage
\spfiglii{1}{Bld20_37.eps}{Beispiel einer Abfrage über mehrere
Tabellen}{_Ref63695405}
\vspace{-11pt}
\end{figure}

Der Kriterienbereich sowie die einbezogenen Tabellen samt deren Beziehungen sehen Sie in Abb. 1.43. Bei einigen Spalten der Abfrage wurden Aliasnamen für die Spaltenüberschriften verwendet. Wenn Sie anschließend die Abfrage ausführen, sollte das Ergebnis als Tabelle im oberen Teil des Fensters erscheinen. Sie können dann auf die Spaltenköpfe klicken und über den Kontextmenübefehl Spaltenformat die Anzeige der Ergebniswerte beeinflussen.

Hinweis: Im aktuellen Beispiel wurde das Spaltenformat für die Mengen und den jeweiligen Gesamtpreis rechtbündig und mit Nachkommastellen (über das Kontextmenü der Spaltenköpfe) angepasst. Die Spaltenformatierung für die berechnete Ergebnisspalte müssen Sie nach jeder Aktualisierung der Abfrage erneut setzen, da Base die Formatangaben nicht in der Abfrage speichert. In der aktuellen Version behält Base auch die Positionen der Tabellen im Design-Bereich nicht bei. Öffnen Sie einen gespeicherte Abfrageentwurf, müssen Sie die Tabellen ggf. manuell im Design-Bereich verschieben.

Achtung: Haben Sie eine .odb-Datenbank mit einer Verknüpfung auf eine MySQL-Datenbank unter Windows eingerichtet und dann Abfragen erstellt, kann es bei der Übernahme dieser .odb-Datei unter Linux Probleme geben. Als erstes müssen Sie die Datenbankeigenschaften so anpassen, dass die Verknüpfung unter Linux auf die externe MySQL-Datenbank zeigt. Auch wenn Sie unter Linux über die Base auf die Tabellen der MySQL-Datenbank zugreifen können, kann es Probleme mit den Abfragen geben. In Linux wird bei Tabellennamen Groß-/Kleinschreibung unterschieden. In Windows erstellte Abfragen passen daher u.U. nicht zu den in Linux in der MySQL-Datenbank vorgefundenen Tabellennamen. Sie müssen u.U. erst die Schreibweisen der Tabellen- und Feldnamen im SQL-Befehl der Abfrage korrigieren. Verhindern lässt sich dies ggf., indem Sie nur Kleinbuchstaben für Feldnamen von MySQL-Tabellen verwenden. Zudem berichteten Leser, dass bei OpenOffice.org 2.0 berechnete Abfragen von MySQL-Tabellen fehlerhaft seien (es würden keine Nachkommastellen in den Ergebniszeilen erscheinen). Bei dem von mir benutzten OpenOffice.org 2.0.1 konnte dieser Effekt weder unter Linux noch unter Windows beobachtet werden.


next up previous index
Next: 4 Abfrageergebnisse gruppieren und Up: 6 Abfragen über mehrere Previous: 1 Anmerkungen zur referenziellen
Nicolaus Millin
2007-08-11