L'outil Joindre des tables Info combine deux fichiers de données INFO. Tant les définitions d'attributs que les valeurs des deux fichiers sont combinées pour créer la table Info en sortie (reportez-vous à la section Exemple ci-après).
L'ensemble d'attributs dans la table Info en sortie est formé en insérant les définitions d'attributs de la table Info à joindre après l'attribut de départ spécifié dans la table Info en entrée. Seuls les attributs de la table Info à joindre qui ne figurent pas dans la table Info en entrée sont combinés. Si le même nom d'attribut apparaît dans les deux fichiers, la définition et les valeurs de la table Info en entrée deviennent prioritaires.
Les valeurs d'attribut sont combinées à l'aide de la logique de mise en relation INFO. Un enregistrement de la table Info à joindre est associé à chaque enregistrement de la table Info en entrée lorsque leurs valeurs Attribut de relation sont identiques. Les valeurs attributaires provenant des deux enregistrements sont alors copiées dans la table Info en sortie.
Le type de relation indique la méthode de correspondance des enregistrements. Le processus de mise en correspondance des options LINEAR et ORDERED peut entraîner l'exploration de toute la table Info en entrée à la recherche d'un enregistrement ayant une valeur Attribut de relation identique à celle d'un enregistrement Table Info en entrée donné. Une recherche est effectuée dans la table Info à joindre pour chaque enregistrement de la table Info en entrée. Une recherche séquentielle est utilisée lorsque l'option LINEAR est spécifiée, tandis qu'une recherche binaire est utilisée avec l'option ORDERED. Dans le cas d'une table Info à joindre de grande taille, l'option ORDERED garantit généralement une exécution plus rapide. Pour pouvoir utiliser l'option ORDERED, le contenu de la table Info à joindre doit être trié par ordre croissant par l'attribut de relation.
Avec l'option LINK, seule la table Info en entrée doit contenir l'attribut de relation. L'attribut de relation figurant dans chaque enregistrement de la table Info en entrée est lié au numéro d'enregistrement de la table Info à joindre à combiner. Aucune recherche n'est effectuée pour faire correspondre les valeurs Attribut de relation, ce qui se traduit par une exécution rapide.
Dans la plupart des cas, la table Info en entrée et la table Info à joindre doivent être réorganisées de telle sorte que chaque enregistrement d'un fichier puisse être apparié à un, et un seul, enregistrement dans l'autre fichier. A défaut de correspondance un vers un, voici la liste des cas pouvant se produire :
- Un enregistrement de la table Info en entrée peut correspondre à plusieurs enregistrements de la table Info à joindre. Dans ce cas, un seul enregistrement de la table Info à joindre est combiné avec chaque enregistrement en entrée. Les données figurant dans tout autre enregistrement correspondant n'apparaissent pas dans la table Info en sortie. L'enregistrement sélectionné dans ce cas peut différer selon qu'il s'agit d'attributs de relation indexés ou non indexés ; lorsqu'un attribut est indexé, rien ne garantit l'obtention de la première occurrence dans le fichier.
- Un enregistrement de la table Info en entrée ne peut pas être mis en correspondance avec un quelconque enregistrement de la table Info à joindre. Dans ce cas, l'enregistrement de la table Info en sortie correspondant contient la valeur 0 ou une valeur vide pour les attributs de la table Info à joindre.
- Un enregistrement de la table Info à joindre est mis en correspondance avec plusieurs enregistrements de la table Info en entrée. Dans ce cas, l'enregistrement de la table Info à joindre est combiné avec chaque enregistrement correspondant de la table Info en entrée. Les données apparaissent à plusieurs reprises dans la table Info en sortie.
- Un enregistrement de la table Info à joindre ne peut pas être mis en correspondance avec un quelconque enregistrement de la table Info en entrée. Dans ce cas, il n'est pas combiné et les données n'apparaissent pas dans la table Info en sortie.
Exemple
Modalités d'utilisation : JOINITEM <in_info_table> <join_info_table> <out_info_table> <relate_item> {start_item} {LINEAR | ORDERED | LINK}
EXCOV.PAT avant 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 après 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