How Join Info Tables (Coverage) works
The Join Info Tables tool combines two INFO data files. Both the item definitions and the values of the two files are merged to create the Output Info Table (see the Example section below).
The set of items in the Output Info Table is formed by inserting the item definitions from the Join Info Table after the specified Start Item in the Input Info Table. Only those Join Info Table items that are not in the Input Info Table are merged. When the same item name occurs in both files, the Input Info Table definition and values take precedence.
Item values are merged using INFO relate logic. A record in the Join Info Table is matched to each record of the Input Info Table when their Relate Item values are equal. The item values from the two records are then copied to the Output Info Table.
The Relate Type specifies the method for matching records. The matching process in both the LINEAR and ORDERED options can entail searching the entire Join Info Table for a record with a Relate Item value that is the same as the Relate Item value in a given Input Info Table record. One search of the Join Info Table is made for every record of the Input Info Table. A sequential search is used when LINEAR is specified, and a binary search is used with the ORDERED option. If the Join Info Table is large, the ORDERED option normally results in faster execution. The Join Info Table must be sorted in ascending order by the Relate Item to use the ORDERED option.
With the LINK option, only the Input Info Table must contain the Relate Item. The Relate Item in each record of the Input Info Table will be linked to the record number in the Join Info Table to be merged. There is no searching to match Relate Item values, so execution is fast.
In most cases, the Input Info Table and Join Info Table should be arranged so each record in either file can be matched to one, and only one, record in the other. If this one-to-one correspondence does not exist, one of the following will occur:
- An Input Info Table record can be matched to more than one Join Info Table record. In this case, only one of the Join Info Table records will be merged with each input record. Data contained in any other matching records will not appear in the Output Info Table. The record selected for this case may differ between indexed and non-indexed relate items; when an item is indexed, you cannot be sure of getting the first occurrence in the file.
- An Input Info Table record cannot be matched to any Join Info Table record. In this case, the corresponding Output Info Table record will contain 0 or blank values for the Join Info Table items.
- A Join Info Table record is matched to more than one Input Info Table record. In this case, the Join Info Table record is merged with each matching Input Info Table record. The data appear repeatedly in the Output Info Table.
- A Join Info Table record cannot be matched to any Input Info Table record. In this case, it is not merged, and the data does not appear in the Output Info Table.
Example
Usage: JOINITEM <in_info_table> <join_info_table> <out_info_table> <relate_item> {start_item} {LINEAR | ORDERED | LINK}
EXCOV.PAT before 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 after 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