Databases Reference
In-Depth Information
Gehegename alleine und die Gehegenummer im Beispiel ein-
deutig sind. Das resultierende Ergebnis ist
GNAME SUM(ART.MINFLAECHE)
------ -------------------
Wald 16
Dieser Ansatz ist nicht immer möglich, typische Lösungsansät-
ze für diese Problematiken findet man im folgenden Unterkapi-
tel.
9.5
Teilanfragen in der FROM-Zeile
Teilanfragen in der FROM -Zeile ermöglichen eine strukturierte
Entwicklung von Anfragen. Dabei ist daran zu denken, dass es
grundsätzlich unerwünscht ist, dass bei Anfragen Zwischener-
gebnisse „heimlich“ notiert werden. Man sollte nie fest davon
ausgehen, dass es z. B. nur drei Gehege mit den bekannten
Namen gibt.
Aus den bisherigen Erklärungen zu den SQL-Anfragen folgt
allerdings konsequent, dass in den folgenden Beispielen nichts
Neues passieren kann. Es werden nur die Aussagen „In der
FROM -Zeile stehen nur Tabellen“ und „Das Ergebnis jeder SQL-
Anfrage ist eine Tabelle“ zusammengesetzt.
Die Grundidee ist, eine komplexe Aufgabenstellung für eine
Anfrage in einfachere Teilanfragen zu zerlegen. Diese Teilan-
fragen liefern Tabellen als Ergebnisse. Diese Teilanfragen wer-
den dann in der FROM -Zeile als benötigte Tabellen angegeben
und zur Lösung der Gesamtaufgabe genutzt.
Dieser Ansatz soll mit einem einfachen Beispiel genauer be-
trachtet werden, für das man allerdings auch schon mit den
vorher beschriebenen Ansätzen eine sinnvolle Anfrage hätte
schreiben können. Es soll berechnet werden, wie viel Fläche in
jedem Gehege von Hasen verbraucht wird. Statt lange an einer
komplexeren Lösung zu basteln, kann man sich überlegen, zu-
nächst die Anzahl der Hasen pro Gehege zu zählen. Dies ge-
schieht mit der folgenden Anfrage.
SELECT Gehege.Gname Gehegename,
COUNT(*) Hasenanzahl
FROM Gehege, Tier
WHERE Gehege.Gnr=Tier.Gnr
AND Tier.Gattung='Hase'
GROUP BY Gehege.Gname
Das Ergebnis dieser Anfrage ist:
Zwischenergeb-
nisse in der
FROM-Zeile
verwalten
Anfragergebniss
e sind Tabellen
Schrittweise
Entwicklung
komplexer An-
fragen
211
Search WWH ::




Custom Search