Funktionsweise von "INFO-Tabellen verbinden" (Coverage)
Das Werkzeug INFO-Tabelle verbinden kombiniert zwei INFO-Datendateien. Die Felddefinitionen und die Werte der beiden Felder werden zusammengeführt und bilden die Ausgabe-INFO-Tabelle (siehe Beispielabschnitt unten).
Die Gruppe der Felder in der Ausgabe-INFO-Tabelle wird gebildet, indem die Felddefinitionen aus der Join-INFO-Tabelle nach dem festgelegten Startfeld in die Eingabe-INFO-Tabelle eingefügt werden. Nur die Felder der Join-INFO-Tabelle, die sich nicht in der Eingabe-INFO-Tabelle befinden, werden zusammengeführt. Wenn derselbe Feldname in beiden Dateien vorkommt, haben die Definition und die Werte der Eingabe-INFO-Tabelle Vorrang.
Feldwerte werden anhand der INFO-Beziehungslogik zusammengeführt. Wenn die Werte in den jeweiligen Relate-Felder identisch sind, wird ein Datensatz in der Join-INFO-Tabelle den einzelnen Datensätzen der Eingabe-INFO-Tabelle zugeordnet. Die Feldwerte aus beiden Datensätzen werden anschließend in die Ausgabe-INFO-Tabelle kopiert.
Der Relate-Typ gibt die Methode zum Abgleich der Datensätze an. Im Rahmen des Abgleichprozesses mit den Optionen LINEAR und ORDERED kann es vorkommen, dass die gesamte Join-INFO-Tabelle nach einem Datensatz durchsucht wird, dessen Wert im Relate-Feld mit dem Wert im Relate-Feld eines bestimmten Datensatzes in der Eingabe-INFO-Tabelle identisch ist. Für jeden Datensatz der Eingabe-INFO-Tabelle wird ein Suchvorgang in der Join-INFO-Tabelle durchgeführt. Bei Angabe von LINEAR wird eine sequentielle Suche durchgeführt und bei der Option ORDERED wird eine binäre Suche gestartet. Wenn die Join-INFO-Tabelle sehr umfangreich ist, wird die Verarbeitung mit der Option ORDERED in der Regel beschleunigt. Um die Option ORDERED zu verwenden, muss die Join-INFO-Tabelle in absteigender Reihenfolge nach dem Relate-Feld sortiert werden.
Mit der Option LINK darf nur die Eingabe-INFO-Tabelle das Relate-Feld enthalten. Das Relate-Feld in den einzelnen Datensätzen der Eingabe-INFO-Tabelle wird mit der Datensatznummer in der zusammenzuführenden Join-INFO-Tabelle verbunden. Da keine Suche zum Abgleich von Werten des Relate-Feldes durchgeführt wird, ist die Ausführung schnell.
In den meisten Fällen müssen die Eingabe-INFO-Tabelle und die Join-INFO-Tabelle so angeordnet sein, dass die jeweiligen Datensätze in beiden Dateien genau einem Datensatz in der jeweils anderen Datei zugeordnet werden können. Existiert diese 1:1-Entsprechung nicht, tritt einer der folgenden Fälle ein:
- Ein Datensatz der Eingabe-INFO-Tabelle kann mehreren Datensätzen der Join-INFO-Tabelle zugeordnet werden. In diesem Fall wird nur einer der Datensätze der Join-INFO-Tabelle mit den einzelnen Eingabedatensätzen zusammengeführt. Daten in anderen übereinstimmenden Datensätzen werden in der Ausgabe-INFO-Tabelle nicht angezeigt. Der für diesen Fall ausgewählte Datensatz kann innerhalb indizierten und nicht-indizierten Feldern unterschiedlich sein. Wenn ein Feld indiziert wird, bekommt man nicht unbedingt das erste Auftreten in der Datei als Ergebnis.
- Ein Datensatz der Eingabe-INFO-Tabelle kann keinem Datensatz in der Join-INFO-Tabelle zugeordnet werden. In diesem Fall enthält der entsprechende Datensatz der Ausgabe-INFO-Tabelle Nullwerte oder leere Werte für die Felder der Join-INFO-Tabelle.
- Ein Datensatz der Join-INFO-Tabelle wird mehr als einem Datensatz der Eingabe-INFO-Tabelle zugeordnet. In diesem Fall wird der Datensatz der Join-INFO-Tabelle mit allen übereinstimmenden Datensätzen der Eingabe-INFO-Tabelle zusammengeführt. Die Daten werden in der Ausgabe-INFO-Tabelle wiederholt angezeigt.
- Ein Datensatz der Join-INFO-Tabelle kann keinem Datensatz der Eingabe-INFO-Tabelle zugeordnet werden. In diesem Fall wird der Datensatz nicht zusammengeführt und die Daten werden in der Ausgabe-INFO-Tabelle nicht angezeigt.
Beispiel
Verwendung: JOINITEM <in_info_table> <join_info_table> <out_info_table> <relate_item> {start_item} {LINEAR | ORDERED | LINK}
EXCOV.PAT vor JOINITEM:
RECNO AREA PERIMETER EXCOV# EXCOV-ID 1 00028176.00* 40,005.500 1 0 2 8881,878.000 13,950.113 2 2 3 8917,384.000 20,539.754 3 1 4 33996880.000 32,816.500 4 3 5 15326114.000 16,342.805 5 5 6 4163,639.000 8,161.073 6 4 7 20812064.000 20,337.066 7 6 8 7930,208.000 11,073.945 8 7
EXCOV.CODE:
RECNO EXCOV-ID CLASS SUIT SOIL 1 2 A 3 EMS 2 1 B 0 DH 3 3 A 7 SDL 4 5 B 2 EAS 5 4 C 0 RO 6 6 B 4 WNB 7 7 A 3 EMS
EXCOV.PAT nach JOINITEM:
RECNO AREA PERIMETER EXCOV# EXCOV-ID CLASS SUIT SOIL 1 00028176.00* 40,005.500 1 0 0 0 2 8881,878.000 13,950.113 2 2 A 3 EMS 3 8917,384.000 20,539.754 3 1 B 0 EDH 4 33996880.000 32,816.500 4 3 A 7 SDL 5 15326114.000 16,342.805 5 5 B 2 EAS 6 4163,639.000 8,161.073 6 4 C 0 RO 7 20812064.000 20,337.066 7 6 B 4 WNB 8 7930,208.000 11,073.945 8 7 A 3 EMS