Как работает инструмент Соединить таблицы Info (набор инструментов Покрытие)

Инструмент Соединить таблицы Info объединяет два файла данных INFO. В выходной таблице Info объединяются и определения полей и значения из обоих файлов (см. раздел Пример ниже).

Выходная таблица Info образуется путем вставки определений полей из присоединяемой таблицы Info после заданного начального поля входной таблицы Info. Добавляются только те поля присоединяемой таблицы Info, которых нет во входной таблице Info. Когда в обоих файлах встречается одинаковое имя поля, приоритет имеют определение и значения входной таблицы Info.

Значения полей объединяются на основе логики связи INFO. Запись в присоединяемой таблице Info сопоставляется записи входной таблицы Info, если они имеют одинаковые значения в поле связи. В этом случае значения полей обеих записей копируются в выходную таблицу Info.

Тип связи определяет метод сопоставления записей. Процесс сопоставления при использовании опций LINEAR и ORDERED может повлечь поиск во всей присоединяемой таблице Info записи, значение поля связи которой совпадает со значением поля связи в данной записи входной таблицы Info. Для каждой записи во входной таблице Info выполняется один поиск в присоединяемой таблице Info. Если задана опция LINEAR, используется последовательный поиск, если задана опция ORDERED, используется бинарный поиск. Если присоединяемая таблица Info имеет большой размер, опция ORDERED обычно позволяет ускорить поиск. Чтобы использовать опцию ORDERED, присоединяемую таблицу Info необходимо отсортировать по полю связи в порядке возрастания значений,

Если используется опция LINK, поле связи должно быть только во входной таблице Info. Поле связи в каждой записи входной таблицы Info будет связано с номером присоединяемой записи в присоединяемой таблице Info. Поскольку поиск для сопоставления значений поля связи не производится, соединение выполняется быстро.

В большинстве случаев входная и присоединяемая таблицы Info должны быть организованы так, чтобы каждой записи в одном из файлов соответствовала одна и только одна запись в другом. Если такого однозначного соответствия нет, возможны следующие варианты:

Пример:

Использование: JOINITEM <in_info_table> <join_info_table> <out_info_table> <relate_item> {start_item} {LINEAR | ORDERED | LINK}

EXCOV.PAT перед 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 после 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
9/10/2013