Quickmenu
[SQL-Klauseln] [SELECTS] [FROM] [JOIN] [AUTO-JOIN] [WHERE] [Elemente des View] [Ausgabefelder] [Ausdrücke] [Searchcondition] [NULLWERTE] [Stellvertreterzeichen] [Logik mit Vorrang] [AND] [OR] [NOT] [ORDER BY] [HAVING] [IN] [BETWEEN] [SUBSELECT] [Aufgaben]
Aufgabe1: Ermitteln Sie die Namen aller Kontinente!
Aufgabe 2: Gesucht sind alle Inseln (ihr Name) der Inselgruppe der Philippinen!
Aufgabe 3: Gesucht sind die Namen aller Wüsten der Wüstenart "Sandwueste" mit einer Fläche größer als 25 000 km²! (Beachte: keine Leerzeichen in Zahlen!!!)
Aufgabe 4: Gesucht sind alle Berge der Alpen (Beachten Sie, daß die Alpen in Teilgebirge aufgegliedert sind)!
Aufgabe 5: Gesucht sind alle Flußnamen, die in die Ostsee oder Nordsee münden und über 1 000 km lang sind!
Aufgabe 6: Geben Sie für alle Millionenstädte, die in den Tropen liegen, die Namen und ihre Koordinaten an! (Die Tropen liegen zwischen 23,27° nördlicher und 23,27° südlicher Breite)
Aufgabe7: Gesucht sind alle Hochgebirge (Gebirge mit Bergen über 3000 m Höhe).
Aufgabe 8: Geben Sie die Namen, die jeweilige Länderkenaung und die Zahl der Einwohner für alle Länder an, die mehr als 45 Millionen Einwohner haben. Ordnen Sie dabei die Lander in absteigender Reihenfolge nach der Einwohnerzahl.
Aufgabe 9: Gesucht ist der Anteil der Meere an der Erdoberfläche (Angabe in Prozent). Hinweis: Der Erdradius beträgt 6370 km.
Aufgabe 10: Wie hoch ist die Einwohnerzahl des vereinigten Deutschlands?
Aufgabe 11: Gesucht sind alle Inselgruppen sowie die Anzahl der zugehörigen Inseln.
Aufgabe 12: Gesucht sind alle Flüsse mit mehr als zwei an ihnen liegenden Städten, sortiert nach dieser Anzahl.
Aufgabe 13: Gesucht sind alle Städte, in denen mehrere Organisationen ihren Sitz haben, sortiert nach der Anzahl der Organisationen.14. Ermitteln Sie die Namen aller Flusse, die sowohi durch Deutschland als auch durch Osterreich fließen.
Aufgabe 15: Gesucht ist die größte Insel der Welt (Name und Fläche der Insel).
Aufgabe 16: Gesucht sind Namen und Haupstadte aller Lander, die nicht Mitglied der UNO sind.
Aufgabe 17: Geben Sie von jedem Land in Afrika den Namen, die Anzahl der Einwohner, die Fläche, das Bruttosozialprodukt sowie den prozentualen Flächenanteil am Kontinent an.
Aufgabe 18: Geben Sie alle Länder (Name), von denen Teile auf mehreren Kontinenten liegen, zusammen mit den jeweiligen Kontinenten an.
Aufgabe 19: Geben Sie zu jedem Land in Europa die Ebenen (des Staates) und deren Höhe an, sortieren Sie nach der Höhe.
Aufgabe 20: Ein Land, in dem mehr als 10 Prozent der Bevölkerung in Großstaaten lebt, gilt als stark urbanisiert. Als Großstädte werden Städte mit mehr als 500000 Einwohnern betrachtet. Welche Länder der EG gelten demzufolge als stark urbanisiert?
Aufgabe 21: Geben Sie zu jedem Fluß, der in einen anderen fließt, an, in welches Meer oder See dieser (der zuletztgenannte Fluß) mündet.
Startmenü für eine Abfrage aus dem Dateimenü
Abfrage-Assistent
Feldauswahl für den View via Abfrage-Assistent
RQBE-Abfrage mit dem Abfrage-Designer - kein .DBF-File geöffnet
... öffnen des .DBF-Files
mit Verzeichnisstruktur für das .DBF-File
ausgewähltes File
Die SELECT-Klausel - der View (das Beispiel)
Standardfeld für RQBE-Abfrage
... und wohin nun mit's janze???
Name für den View wird im Feld "Dateinamen" eingetragen und somit verwaltet
Erstellung des View (automatisch sind alle Felder einbezogen)
Die Anzeige von Duplikaten im View kann durch Einschalten des Kontrollkästchens "Keine Duplikate" verhindert werden - Duplikate würden entstehen, wenn mehrere Datensätze die Suchbedingung erfüllen, jedoch nur ein Merkmal gesucht wird (z. B.: viele Vertreter verkaufen mehrere Artikel - gesucht ist jedoch nur der Name des jeweiligen Vertreters, er soll aber nur einmal angezeigt werden!). Im Gegensatz zu anderen Datenbankabfrageprogrammen ist bei RQBE diese Einstellung nicht Standard - sie muß extra zugeschalten werden.
... in FoxPro 6.0 über das register "Verschiedenes" - "Keine Duplikate" zu aktivieren
Text kann im View benötigt werden, wenn der Datenfeldname für die Repräsentation nicht relevant ist oder im aktuellen View nicht einbezogen ist
Das Einfügen von Aussagetext in den View
... und das Aktivieren in den ausgewählten Feldern
Funktionen im View erfüllen Berechnungen oder statistische Auswertungen von Datenbeständen
Definition von Funktionen als Abfrageergebnis
Funktion | Datentypen | Beschreibung |
MAX(argument) | numerische Werte und Zeichen | sucht das maximale Vorkommen innerhalb der Datenfelder (bei Text wird das Vorkommen des Zeichens oder Wortes gefiltert, welches im Alphabet am weitesten hinten steht (ASCII-Code ist Basis - Vorsicht mit Umlauten und Sonderzeichen!!!)) |
MIN(argument) | numerische Werte und Zeichen | sucht das minimale Vorkommen innerhalb der Datenfelder (bei Text wird das Vorkommen des Zeichens oder Wortes gefiltert, welches im Alphabet am weitesten vorn steht (ASCII-Code ist Basis - Vorsicht mit Umlauten und Sonderzeichen!!!)) |
SUM(datenfeld) | numerische Werte | ermittelt die Summe der in die Abrgekriterien einbezogenen Datenfelder |
COUNT(datenfeld) | numerische Werte und Zeichen | stellt die Anzahl der Vorkommen eines Kriteriums fest |
AVG(datenfeld) | numerische Werte | ermittelt den Durchschnitt der in die Abrgekriterien einbezogenen Datenfelder |
Übersicht über die numerischen Funktionen von FoxPro
Fenster für Gruppierung der Ausgabedaten
Order By-Klausel
sortiert die Anzeigedaten auf einem oder mehreren Feldern - die Ausgangsdatei bleibt davon ausgenommen - sie wird nicht sortiert.Sortiert werden kann auf mehrere Ausgabefelder, wobei die Reihenfolge der Sortierung durch die Position in der Sortierfolge des Menüs festgelegt ist. Das erste Feld ist Hauptsortierkriterium.
Fenster für Ausgabesortierung
zum ersten (das Beispiel) - und zum zweiten (das Beispiel)
Bedingungsformulierung für den View
Innerhalb des Dialogfensters zur Feldauswahl
existiert das Kontrollkästchen Kreuztabelle. Sie können die
Abfrageergebnisse an Hilfsprogramme wie Graph, in eine Tabelle
oder an einen Report weitergeben. Dann wählen Sie das Kontrollkästchen
Kreuztabelle. In diesem Ausgabeformat wird eine Tabelle mit dem
ersten Parameter als Zeilennumerierung und dem zweiten Parameter
als Spaltenbeschriftung erzeugt. Die Daten des dritten Parameters
werden dann in die Tabelle eingetragen.
Daher ist die Option nur freigegeben, wenn in der Liste Gewählte
Ausgabe genau drei Elemente eingetragen sind.
Nehmen wir als Beispiel wieder die Datei RECHNUNG.DBF.
Es sollen die drei Felder Kundennummer, Rechnungsstummer, Betrag
in einer Tabelle ausgegeben werden. Zur Begrenzung der Tabelle
sollen nur Sätze mit einem Rechnungsbetrag
größer als DM 2000.- angezeigt werden. Die entsprechenden
Auswahlbedingungen sind in den RQBE-Dialogfenslern einzutragen.
Nach Auswahl der drei Felder sollte die Option Kreuztabelle noch
nicht gewählt werden. Wenn Sie die Abfrage starten, erscheint
folgende Tabelle auf dem Bildschirm. Dann schließen Sie die
Tabelle und aktivieren das Kontrollkästchen Felder innerhalb des
Dialogfensters Gruppe definieren erneut. Im neuen Dialogfenster
bleibt die Feldauswahl erhalten. Nun markieren Sie das Kontrollkästchen
Kreuztalbelle und schließen das Fenster. Im RQBE-Fenster sind
dann die Optionen Gruppe definieren und Reihenfolge gesperrt.
Wenn Sie nun die Abfrage über die entsprechende Schaltfläche starten, erscheint zuerst die Meldung, daß das Programm GENXIAB.PRG erstellt wird. Dann blendet FoxPro ein Symbol mit der Nachricht ein, daß die Kreuztabelle erstellt wird. Anschließend blendet FoxPro die Kreuztabelle auf dem Bildschirm ein.
Die Tabelle enthält die gleichen Ergebnisse wie die Talrelle in Bild d.17. Lediglich das Anzeigeformat ist etwas anders. Diese Form der Ausgabe können Sie nun in Frerndprogrammen zur Auswertung verwenden.
Dateifenster zum Öffnen der weiteren Datei(en)
Hier werden Tabellen miteinander "verknüpft", die
Suchkriterien enthalten, welche nicht in jeder Tabelle getrennt
enthalten sind, aber in der einen oder der anderen. Zusätzlich
muß es ein Datenfeld geben (den Schlüssel - Key), welches in
beiden Datenbanken existiert. Im allereinfachsten Falle kann dies
auch die Datensatznummer (Record-Number) sein, setzt dann aber
wiederum voraus, daß in beiden Datenbanken der gleiche Bezug auf
gleicher Position (Satznummer) steht.
In jedem Falle entsteht eine Zischenrelation, deren Aufbau bei
hinreichender Datensatzanzahl komplex und langwierig sein kann!
Verknüpft werden für die Abfrage zwei verschiedene Tabelle, die aber das gleiche Schlüsselmerkmal unter gleicher Bezeichnung in jeder der in Beziehung zu setzenden Entitäten enthalten.
Fenster zum Setzen der Verknüpfungsbedingungen
Die zu verknüpfenden Tabellen enthalten unter dem gemeinsamen Schlüsselmerkmal unterschiedliche Anzahlen von Einträgen (entsteht in jeder 1:n-Beziehung) - sie sollen aber mit allen Einträgen verknüpft werden. (das Beispiel)
Die Tabelle IST_MITG enthält das Schlüsselmerkmal L_id deshalb mehrfach, weil ein Land in mehreren Organisationen Mitgleid sein kann
Right-Outer-JOIN
Die Tabelle IST_MITG enthält das Schlüsselmerkmal L_id deshalb mehrfach, weil ein Land in mehreren Organisationen Mitgleid sein kann
Hierbei wird eine Tabelle auf sich selbst in Beziehung gesetzt um Merkmale einer Tabelle miteinander vergleichen zu können (intern wird dabei eine Kopie-Tabelle der Ausgangstabelle erzeugt) (das Beispiel)
um eine Datenbank zielgerichtet abzufragen, müssen Kriterien (Bedingungen oder auch Konditionen) definiert werden - dies geschieht unter FoxPro menügesteuert und kann über Auswahlschalter entsprechend zusammengestellt werden - darunter liegt eine Standard-SQL!!!
... sind in FoxPro aufgrund seiner Verwandschaft zu dBASE 4.0 einigen besonderheiten unterworfen. So werden von dBASE in Leerfelder automatisch für Textfelder * (das Beispiel) und für Zahlenfelder 9999999999 eingesetzt. Das hat Konsequenzen für die Richtigkeit einiger Abfragen (eine Frage nach Millionenstädten muß Leerfelder ausschließen!). (das Beispiel)
Werden in einer Abfrage mehrere
Searchconditions evtl. gar noch auf mehrere Entities gelegt, so
entstehen bei der Auswertung immer Zwischen-Tabellen, welche
anschließend weiter ausgewertet werden.
Bei
der Anwendung logischer Verknüfungen von Abfragekriterien gelten
keine Vorrangbestimmungen in der Reihenfolge NOT, AND OR. Sollen andere Reglen zur Auswertung
als die Reihenfolge gelten, so müssen die Ausdrücke
entsprechend getrennt durch die jeweilige ODER-Verknüpfung
notiert werden.
Elemente einer Zwischenrelation oder der
Ausgangstabelle werden genau dann in den View aufgenommen, wenn
alle AND-verknüpften Bedingungen bezogen auf den Zwischenview
gleichzeitig das Ergebnis "WAHR" liefern - sonst nicht.
In FoxPro werden AND-Verknüpfungen von Suchbedingungen einfach
dadurch formuliert, daß in der zweiten oder folgenden Zeile der
Abfragekriterien weitere Bedingungen notiert werden.
Elemente einer Zwischenrelation oder der
Ausgangstabelle werden genau dann in den View aufgenommen, wenn
ein Datensatz eine der OR-verknüpften Bedingungen bezogen auf
den Zwischenview das Ergebnis "WAHR" liefern - sonst
nicht.
In FoxPro werden OR-Verknüpfungen von Suchbedingungen dadurch
formuliert, daß der "ODER"-Schalter geklickt wird und
in der folgenden Zeile die Abfragekriterien weiterer Bedingungen
notiert werden.
ODER-Schalter im Feld der Abfragekriterien (alle durch ODER getrennten Abfragekriterien werden atomatisch UND-verknüpft sowie in sich geklammert)
Kritisch werden Bedingungen, in denen AND mit OR-Aussagen verbunden werden sollen, denn jede OR-Verknüpfung kann einen weiteren Block von AND-Bedingungen aufnehmen, welche in sich automatisch geklammert werden. Allerding müssen dann eben auch Bedingungen mehrfach gleich notiert werden, wie im Beispiel der Aufgabe 5 ersichtlich ist!
Der View ermittelt eine Reihe von Vergleichkriterien, die in einer Teilmenge der Ausgangstabelle als Zwischenrelation ermittelt wurden. Gefragt wird nach einem Kriterium, das in allen Zieldatensätzen enthalten ist. Der IN-Operator wird für SUBSELECTS benötigt.
Ausgewertet wird ein Parameter-Bereich, wobei Einzelwerte durch Komma getrennt aufgeführt werden. (das Beispiel)
Ausdrücke in der Searchcondition
Sind Formulierungen. (das Beispiel)
... sind Abfragen auf eine Abfrage. Sie müssen in Fox über das Beispielfeld der Searchcondition erstellt und als vollständige Formel ohne (!!!!) Semikolon eingetragen werden (wäre sonst zu einfach!).
Deklaration des SUBSELECTS im Beispielfeld des Abfragekriteriums
Anwendung der Geo-Datenbank
1.) Ermitteln Sie die Namen aller Kontinente! (View auf eine Tabelle ohne Searchconditions)
zugehöriges RQBE-Abfrage-Fenster
select k_name;
from kontinen
5 relevante Sätze
2.) Gesucht sind alle Inseln (Name) der Inselgruppe der Philippinen. (View auf eine Tabelle mit einer Searchcondition)
zugehöriges RQBE-Abfrage-Fenster
select
i_name
from insel
where inselgrupp = 'Philippinen';
9 relevante Sätze
3.) Gesucht sind alle Wüsten (Name) der Art "Sandwueste" mit einer Fläche größer als 25000 km2. (View auf eine Tabelle mit mehreren Searchconditions AND-verknüpft)
zugehöriges RQBE-Abfrage-Fenster
select
w_name
from wueste
where wuestenart = 'Sandwueste'
and flaeche > 25000;
(9 relevante Sätze)
4.) Gesucht sind alle Berge der Alpen (Beachten Sie, daß die Alpen in Teilgebirge aufgegliedert sind). (View auf eine Tabelle mit einer Searchcondition unter Anwendung von Stellvertreterzeichen)
zugehöriges RQBE-Abfrage-Fenster
select bergname
from berg
where gebirge like '%Alpen%'
(4 relevante Sätze)
5.) Gesucht sind alle Flüsse (Name), die in die Ostsee oder Nordsee münden und über 1000 km lang sind. (View auf eine Tabelle mit mehreren Searchconditions AND- und OR-verknüpft - also mit Vorrangautomatik)
zugehöriges RQBE-Abfrage-Fenster
SELECT Fluss.f_name,
Fluss.laenge, Fluss.meer;
FROM Fluss;
WHERE Fluss.laenge > 1000;
AND Fluss.meer = "Nordsee";
OR (Fluss.laenge > 1000;
AND Fluss.meer = "Ostsee")
(6 relevante Sätze)
6.) Geben Sie für alle Millionenstädte, die in den Tropen liegen, die Namen und ihre Koordinaten an (Die Tropen liegen zwischen 23,27 Grad nördlicher und 23,27 Grad südlicher Breite)! (View auf eine Tabelle mit mehreren AND-vernüpften Searchconditions unter Anwendung von Bereichsangaben)
zugehöriges RQBE-Abfrage-Fenster
SELECT Stadt.st_name,
Stadt.breite, Stadt.laenge;
FROM Stadt;
WHERE Stadt.breite BETWEEN -23.27 AND 23.27;
AND Stadt.einwohner > 1000000
(78 relevante Sätze)
7.) Gesucht sind alle Hochgebirge (Gebirge mit Bergen über 3000 m Höhe). (View auf eine Tabelle mit einer Searchcondition unter Auswertung von NULLWERTEN)
zugehöriges RQBE-Abfrage-Fenster
SELECT DISTINCT
Berg.gebirge;
FROM Berg;
WHERE Berg.hoehe > 3000;
AND Berg.gebirge <> "*";
(30 relevante Sätze)
8.) Geben Sie die Namen, die jeweilige Länderkennung und die Zahl der Einwohner für alle Länder an, die mehr als 45 Millionen Einwohner haben. Ordnen Sie dabei die Länder in absteigender Reihenfolge nach der Einwohnerzahl. (View auf eine Tabelle mit einer Searchcondition unter Auswertung eines Sortierkriteriums)
zugehöriges RQBE-Abfrage-Fenster
festzulegendes Sortierkriterium
SELECT Land.l_name,
Land.l_id, Land.einwohner;
FROM Land;
WHERE Land.einwohner > 45000000;
ORDER BY Land.einwohner DESCENDING
(19 relevante Sätze)
9.) Gesucht ist der Anteil der Meere an der Erdoberfläche (Angabe in Prozent). Hinweis: Der Erdradius beträgt 6370 km! (View auf eine Tabelle ohne Searchcondition unter Anwendung einer Funktion im View und Anzeige eines Audruckes)
zugehöriges RQBE-Abfrage-Fenster
SELECT "Anteil
der Weltmeere in Prozent",;
((4*3.1416*6.37*6.37)- sum(Kontinen.flaeche))/(4*3.1416*6.37*6.37)*100;
FROM Kontinen
(1 relevanter Satz mit ca. 72%)
10.) Wie hoch ist die Einwohnerzahl des vereinigten Deutschlands (Beachten Sie, daß in der vorliegenden Datenstruktur DDR und BRD noch getrennt aufgeführt sind)? (View auf eine Tabelle mit Funktion in der Searchcondition unter Anwendung des Mengenoperators)
zugehöriges RQBE-Abfrage-Fenster
SELECT SUM(Land.einwohner);
FROM Land;
WHERE Land.l_id IN ('D','DDR')
oder aber (View auf eine Tabelle mit Funktion in der Searchcondition unter Anwendung des Wildcards):
zugehöriges RQBE-Abfrage-Fenster
SELECT SUM(Land.einwohner);
FROM Land;
WHERE Land.l_id LIKE "D__";
OR (Land.l_id == "D")
(1 relevanter Satz mit ca. 89 Mio)
11.) Gesucht sind alle Inselgruppen sowie die Anzahl der zugehörigen Inseln. (View auf eine Tabelle mit Funktion in der Searchcondition mit Gruppierung)
zugehöriges RQBE-Abfrage-Fenster
einzustellende Gruppierungvorschrift
SELECT Insel.inselgrupp,
"mit: ", COUNT(DISTINCT Insel.i_name);
FROM Insel;
WHERE Insel.inselgrupp <> '*';
GROUP BY Insel.inselgrupp
(35 relevante Sätze)
12.) Gesucht sind alle Flüsse mit mehr als zwei an ihnen liegenden Städten, sortiert nach dieser Anzahl. (View auf eine Tabelle mit Funktion in der Searchcondition unter Anwendung einer Gruppierungsvorschrift und ausschließender Bedingung)
zugehöriges RQBE-Abfrage-Fenster
festzulegendes Sortierkriterium
einzustellende Gruppierungvorschrift
ausschließemde Bedingung
SELECT Liegt_an.f_name,
COUNT(*);
FROM Liegt_an;
WHERE Liegt_an.f_name <> "*";
GROUP BY Liegt_an.f_name;
HAVING COUNT(*) > 2;
ORDER BY 2
Elbe nicht im Ergebnis, da z. Zt. Elbe nur für Hamburg erfaßt
(5 relevante Sätze)
13.) Gesucht sind alle Städte, in denen mehrere Organisationen ihren Sitz haben, sortiert nach der Anzahl der Organisationen. (View auf eine Tabelle mit Funktion in der Searchcondition unter Anwendung einer Gruppierungsvorschrift und ausschließender Bedingung)
zugehöriges RQBE-Abfrage-Fenster
festzulegendes Sortierkriterium
einzustellende Gruppierungvorschrift
ausschließemde Bedingung
SELECT Hat_sitz.st_name,
COUNT(*);
FROM Hat_sitz;
WHERE Hat_sitz.st_name <> '*';
GROUP BY Hat_sitz.st_name;
HAVING COUNT(*) > 2;
OR (COUNT(*) = 2);
ORDER BY 2
(5 relevante Sätze)
14.) Ermitteln Sie die Namen aller Flüsse, die sowohl durch Deutschland als auch durch Österreich fließen.
(View auf einen AUTO-Join zweier Tabellen mit Searchcondition )
zugehöriges RQBE-Abfrage-Fenster
Erstellung des AUTO-Join im Verknüpfungsfenster
ELECT DISTINCT Geo_flus.f_name;
FROM Geo_flus, GEO_FLUS Geo_flus_a;
WHERE Geo_flus_a.lt_id = Geo_flus.lt_id;
AND (Geo_flus.l_id == 'A';
AND Geo_flus_a.l_id == 'D')
(1 relevanter Satz)
15.) Gesucht ist die größte Insel der Welt (Name und Fläche der Insel). (View auf einen Mengenoperator und einem Ausdruck in der Searchcondition )
SELECT
Insel.i_name, Insel.flaeche;
FROM Insel;
WHERE Insel.flaeche IN (SELECT MAX(Insel.flaeche) FROM Insel
WHERE Insel.flaeche<9999999999)
(1 relevanter Satz)
16.) Gesucht sind Namen und Hauptstädte aller Länder, die nicht Mitglied der UNO sind. (View auf einen einen Outer-Join zweier Tabellen mit Mengenoperator und einem Ausdruck in der Searchcondition )
zugehöriges RQBE-Abfrage-Fenster
Erstellung des Right-Outer-JOIN-Join (Größer als) im Verknüpfungsfenster
SELECT
DISTINCT Land.l_name, Land.hauptstadt;
FROM Land, Ist_mitg;
WHERE Ist_mitg.l_id > Land.l_id;
AND Land.l_id NOT IN ('SELECT Hat_sitz.l_id;FROM ist_mitg;
where Ist_mitg.abkuerz = "UNO"')
(176 relevante Sätze)
17.) Geben Sie von jedem Land in Afrika den Namen, die Anzahl der Einwohner, die Fläche, das Bruttosozialprodukt sowie den prozentualen Flächenanteil am Kontinent an. (View auf einen einen Inner-Join zweier Tabellen und einer Searchcondition )
zugehöriges RQBE-Abfrage-Fenster
Erstellung des Inner-JOIN-Join (Gleich) im Verknüpfungsfenster
SELECT
Land.l_name, Land.einwohner, Land.flaeche, Land.bsp,;
Umfasst.prozent;
FROM Land, Umfasst;
WHERE Land.l_id = Umfasst.l_id;
AND Umfasst.k_name == "Afrika"
(56 relevante Sätze)
18.) Geben Sie alle Länder, von denen Teile auf mehreren Kontinenten liegen, zusammen mit den jeweiligen Kontinenten an. (View auf einen Inner-Join zweier Tabellen und einer Searchcondition mit Gruppierung und ausschließender Bedingung)
zugehöriges RQBE-Abfrage-Fenster
Erstellung des AUTO-JOIN (Selbstverbund) im Verknüpfungsfenster Umfasst_a.l_id und Land.l_id
SELECT DISTINCT Land.l_name,
Umfasst.k_name, Umfasst_b.k_name;
FROM Land, Umfasst, UMFASST Umfasst_b;
WHERE Land.l_id = Umfasst.l_id;
AND Umfasst_b.l_id = Land.l_id;
AND Land.l_id IN ("");
GROUP BY Land.l_id;
HAVING CNT(*)>2.OR.(CNT(*)=2)
19.) Geben Sie zu jedem Land in Europa die Ebenen (des Staates) und deren Höhe an, sortieren Sie nach der Höhe. (View auf mehrere Inner-Join dreier Tabellen und einer Searchcondition )
zugehöriges RQBE-Abfrage-Fenster
Erstellung des INNER-JOIN (Gleichverbund) im Verknüpfungsfenster Geo_eben.l_id und Land.l_id
Erstellung des NNER-JOIN (Gleichverbund) im Verknüpfungsfenster Umfasst.l_id und Land.l_id
Erstellung des NNER-JOIN (Gleichverbund) im Verknüpfungsfenster Ebene.e_name und Geo_ebene.e_name
SELECT
DISTINCT Geo_eben.e_name, Land.l_name, Ebene.hoehe;
FROM Land, Geo_eben, Umfasst, Ebene;
WHERE Geo_eben.l_id = Land.l_id;
AND Umfasst.l_id = Land.l_id;
AND Ebene.e_name = Geo_eben.e_name;
AND Umfasst.k_name = "Europa";
ORDER BY Ebene.hoehe
(6 relevante Sätze)