Auswertungstools - Outer Join

Grundsätzlich ist es leichter, nach vorhandenen Daten zu suchen als nach nicht vorhandenen.

Eine einfache SQL-Anweisung, die Sie in ein MIS-Format oder eine MIS-Abfrage eintragen, findet immer nur die Datensätze, für die in allen angesprochenen Tabellen ein Eintrag vorhanden ist.

Die Anweisung

select n_adressen.nachname, n_adressen.vorname, n_personendaten.geburtsdatum
from n_adressen, n_personendaten
where n_adressen.adressnummer = n_personendaten.zuordnungsnummer
 

gibt alle Datensätze aus der Tabelle n_adressen aus, für die auch in der Tabelle n_personendaten ein Datensatz gespeichert ist.

Wurden für eine Adresse keine Personendaten gespeichert, fehlt dieser Satz im Auswertungsergebnis.

Möchten Sie aber wirklich alle Adressen angezeigt bekommen, unabhängig von gespeicherten Personendaten, müssen Sie OUTER JOIN verwenden. Beispiele für den so genannten LEFT OUTER JOIN finden Sie unten.

Auf diese Weise erhalten Sie alle Adressen. Sofern es einen Eintrag zu der einzelnen Adresse in der Tabelle n_personendaten gibt, wird hier das Geburtsdatum angezeigt. Gibt es keinen Eintrag, bleibt das Feld für das Geburtsdatum leer.

Die gesamte Liste können Sie dann nach dem Feld "Geburtsdatum" auf- oder absteigend sortieren, um z.B. alle Adressen mit bzw. ohne Geburtsdatum an den Anfang zu verschieben. Ergänzen Sie hierzu die Scripts um die Zeile

order by n_personendaten.geburtsdatum desc

für eine absteigende Sortierung nach dem Geburtsdatum. Für die aufsteigende Sortierung (Standardeinstellung) lassen Sie "desc" einfach weg.


Outerjoin Informix

select
n_adressen.nachname,
n_adressen.vorname,
n_personendaten.geburtsdatum

from n_adressen, outer n_personendaten

where n_adressen.adressnummer = n_personendaten.zuordnungsnummer

Outerjoin MS SQL Server

select
n_adressen.nachname,
n_adressen.vorname,
n_personendaten.geburtsdatum

from n_adressen left outer join n_personendaten
on n_adressen.adressnummer = n_personendaten.zuordnungsnummer

Outerjoin Oracle

select
n_adressen.nachname,
n_adressen.vorname,
n_personendaten.geburtsdatum

from n_adressen, n_personendaten

where n_adressen.adressnummer = n_personendaten.zuordnungsnummer(+)

 

 

Download von Dateien

Klicken Sie den Link auf eine Datei mit der rechten Maustaste an und wählen im Kontextmenü "Ziel speichern unter". Nun können Sie die Datei an einer beliebigen Stelle abspeichern.

*.sql-Dateien lassen sich auch direkt im Internet-Explorer öffnen, um den enthaltenen Text zu kopieren und in einen geeigneten SQL-Editor einzufügen. *.dat - dateien sind für den Import in MIS vorgesehen (siehe Anleitung).

Bitte beachten Sie vor dem Download die Grundsätze für die Nutzung.


Zurück