Commande JOIN
Information de concept
Combine des champs de deux tables Analytics dans une nouvelle table Analytics unique.
Remarque
Pour utiliser les correspondances approximatives afin de joindre des tables, consultez la rubrique Commande FUZZYJOIN.
Syntaxe
JOIN {PKEY champs_clés_principaux|PKEY ALL <EXCLUDE field_name <...n>>} {FIELDS champs_principaux|FIELDS ALL <EXCLUDE nom_champ <...n>>} {SKEY champs_clés_secondaires|SKEY ALL <EXCLUDE nom_champ <...n>>} <WITH champs_secondaires|WITH ALL <EXCLUDE nom_champ <...n>>> {aucun_mot_clé|MANY|UNMATCHED|PRIMARY|SECONDARY|PRIMARY SECONDARY} <IF test> TO nom_table <LOCAL> <OPEN> <WHILE test> <FIRST plage|NEXT plage> <APPEND> <PRESORT> <SECSORT> <ISOLOCALE code_paramètres_régionaux>
Paramètres
Nom | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PKEY champs_clés_principaux | PKEY ALL |
Le ou les champs clés, ou expression clé, dans la table principale.
|
||||||||||||||||||||||||
EXCLUDE nom_champ optionnel |
Valide uniquement pour une jointure à l'aide de PKEY ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser PKEY ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement PKEY ALL. Par exemple : PKEY ALL EXCLUDE champ_1 champ_2 |
||||||||||||||||||||||||
FIELDS champs_principaux | FIELDS ALL |
Les champs ou expressions de la table principale à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le(s) champ(s) clé(s) principal(aux) si vous voulez les intégrer dans la table jointe. Le fait de spécifier FIELDS ALL les inclut également. |
||||||||||||||||||||||||
EXCLUDE champs_principaux optionnel |
Valide uniquement pour une jointure à l'aide de FIELDS ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser le mot-clé ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement FIELDS ALL, ou la dernière occurrence du mot-clé ALL si vous incluez des champs d'une ou de plusieurs tables associées. Par exemple : FIELDS ALL EXCLUDE champ_1 champ_2 FIELDS ALL nom_table_associée.ALL EXCLUDE champ_1 champ_2 |
||||||||||||||||||||||||
SKEY champs_clés_secondaires | SKEY ALL |
Le ou les champs clés, ou l'expression clé, dans la table secondaire.
|
||||||||||||||||||||||||
EXCLUDE nom_champ optionnel |
Valide uniquement pour une jointure à l'aide de SKEY ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser SKEY ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement SKEY ALL. Par exemple : SKEY ALL EXCLUDE champ_1 champ_2 |
||||||||||||||||||||||||
WITH champs_secondaires | WITH ALL optionnel |
Les champs ou expressions de la table secondaire à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le(s) champ(s) clé(s) secondaire(s) si vous voulez les intégrer dans la table jointe. Le fait de spécifier WITH ALL les inclut également. Vous ne pouvez pas indiquer WITH si vous utilisez le type de jointure UNMATCHED. |
||||||||||||||||||||||||
EXCLUDE nom_champ optionnel |
Valide uniquement pour une jointure à l'aide de WITH ALL. Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser WITH ALL, en excluant les champs spécifiés. EXCLUDE doit suivre immédiatement WITH ALL. Par exemple : WITH ALL EXCLUDE champ_1 champ_2 |
||||||||||||||||||||||||
aucun_mot_clé | MANY | UNMATCHED | PRIMARY | SECONDARY | PRIMARY SECONDARY |
Type de jointure à effectuer. aucun_mot_clé (omettez tous les mots-clés du type de jointure)
MANY
UNMATCHED
PRIMARY
Remarque Le mot-clé BOTH revient à spécifier PRIMARY. SECONDARY
PRIMARY SECONDARY
|
||||||||||||||||||||||||
IF test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée uniquement sur les enregistrements remplissant la condition. Remarque La condition IF est évaluée uniquement par rapport aux enregistrements restant dans une table après application des options relevant du champ d'application (WHILE, FIRST, NEXT). Remarque Pour la plupart des types de jointure, la condition IF ne s'applique que dans la table principale. La seule exception est une jointure ACL de type plusieurs-à-plusieurs, dans laquelle la condition IF peut aussi faire référence à la table secondaire. Pour faire référence à la table secondaire, vous devez indiquer un nom de champ complet (nom_table.nom_champ). Par exemple : IF Etat.Client="NY" |
||||||||||||||||||||||||
TO nom_table |
Emplacement vers lequel envoyer les résultats de la commande :
|
||||||||||||||||||||||||
LOCAL optionnel |
Enregistre le fichier de sortie au même emplacement que le projet Analytics. Remarque Applicable uniquement lorsque vous exécutez la commande sur une table de serveur avec un fichier de sortie qui est une table Analytics. Le paramètre LOCAL doit suivre immédiatement le paramètre TO. |
||||||||||||||||||||||||
OPEN optionnel |
Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie. |
||||||||||||||||||||||||
WHILE test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte. Remarque Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte. |
||||||||||||||||||||||||
FIRST plage | NEXT plage optionnel |
Le nombre d'enregistrements à traiter :
Utilisez plage pour indiquer le nombre d'enregistrements à traiter. Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut. |
||||||||||||||||||||||||
APPEND optionnel |
Ajoute la sortie de commande à la fin d'un fichier existant au lieu de remplacer ce fichier. Remarque Vous devez vous assurer que la structure de la sortie de la commande et du fichier existant est identique :
Analytics ajoute la sortie à un fichier existant sans tenir compte de sa structure, ce qui peut désordonner les données si la structure de la sortie et du fichier existant ne correspond pas. |
||||||||||||||||||||||||
PRESORT optionnel |
Trie la table principale par le champ clé primaire avant d'exécuter la commande. Remarque Vous ne pouvez pas utiliser PRESORT dans la commande GROUP. Indexation au lieu du triLa table primaire peut être indexée plutôt que triée. Avec les grandes tables, indexer plutôt que trier peut permettre de diminuer la durée requise pour joindre les tables. Si vous joignez deux tables à l'aide d'un champ clé commun indexé, ignorez PRESORT et SECSORT. |
||||||||||||||||||||||||
SECSORT optionnel |
Trie la table secondaire par le champ clé secondaire avant d'exécuter la commande. Remarque Vous ne pouvez pas utiliser SECSORT dans la commande GROUP. Indexation au lieu du triLa table secondaire peut être indexée plutôt que triée. Avec les grandes tables, indexer plutôt que trier peut permettre de diminuer la durée requise pour joindre les tables. Si vous joignez deux tables à l'aide d'un champ clé commun indexé, ignorez PRESORT et SECSORT. |
||||||||||||||||||||||||
ISOLOCALE code_paramètres_régionaux optionnel |
Remarque Applicable dans l'édition Unicode d'Analytics uniquement. Paramètre système local au format langue_pays. Par exemple, pour utiliser le français canadien, saisissez fr_ca. Utilisez les codes suivants :
Si vous n'utilisez pas ISOLOCALE, ce sont les paramètres système régionaux par défaut qui sont utilisés. |
Exemples
Joindre deux tables pour détecter les employés susceptibles d'être aussi des fournisseurs
Les exemples ci-dessous joignent les tables Empmast et Fournisseur en utilisant l'adresse comme champ clé commun (champs Adresse et Rue_Fournisseur).
La commande JOIN crée une nouvelle table avec les enregistrements primaires et secondaires correspondants, ce qui génère la liste des employés et des fournisseurs ayant la même adresse.
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS Empno Premier Dernier Adresse SKEY Rue_Fournisseur WITH No_Fournisseur Nom_Fournisseur Rue_Fournisseur "Correspondance_employé_fournisseur" OPEN PRESORT SECSORT
Cette version de la commande JOIN inclut tous les champs des tables principale et secondaires dans la table de sortie jointe.
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS ALL SKEY Rue_Fournisseur WITH ALL TO "Correspondance_employé_fournisseur" OPEN PRESORT SECSORT
Cette version de la commande JOIN utilise une condition IF pour limiter la table de sortie jointe aux employées et fournisseurs avec des adresses en Californie.
Notez que le type de jointure est MANY, qui est requise si vous souhaitez qu'une condition IF fasse référence à une table secondaire. Le nom du champ de la table secondaire doit être complet ( Fournisseur.Etat_Fournisseur ).
OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS ALL SKEY Rue_Fournisseur WITH ALL IF Etat="CA" AND Fournisseur.Etat_Fournisseur="CA" TO "Correspondance_employé_fournisseur" OPEN PRESORT MANY SECSORT
Joindre deux tables pour découvrir des enregistrements de créances clients sans client qui correspond
Dans l'exemple ci-dessous, les tables Ar et Client sont jointes en utilisant le numéro de client (NumClient) comme champ clé commun.
La commande JOIN utilise le type de jointure UNMATCHED pour créer une table d'enregistrements primaires non correspondants, qui renvoie une liste d'enregistrements Ar qui ne sont associés à aucun enregistrement Client.
OPEN Ar PRIMARY
OPEN Client SECONDARY
JOIN PKEY NumClient FIELDS NumClient Echéance Montant SKEY NumClient UNMATCHED TO "ClientIntrouvable.fil" OPEN PRESORT SECSORT
Remarques
Pour plus d'informations sur le fonctionnement de cette commande, consultez Jonction de tables.