Utilisation de la commande JOIN

Référence :

La commande JOIN vous permet de faire un rapport à partir de deux sources de données liées ou plus avec une seule requête. Les sources de données jointes sont physiquement différentes, mais elles sont traitées comme une seule source. Jusqu'à 1023 jointures peuvent être activées à la fois.

Lorsque deux sources de données sont jointes, une source s'appelle le fichier hôte et l'autre source s'appelle le fichier de référence. Chaque fois que l'enregistrement est récupéré du fichier hôte, les champs correspondants dans le fichier de référence sont identifiés dans la mesure où ils sont référencés dans la requête de rapport. Les enregistrements dans le fichier de référence comprenant les valeurs correspondantes sont alors récupérés.

Deux sources de données peuvent être jointes au moyen d'une jointure conditionnelle chaque fois qu'une expression peut être définie qui détermine la façon de faire correspondre des enregistrements du fichier hôte à ceux du fichier de référence. Deux sources de données peuvent être jointes avec une équijonction lorsqu'elles ont des champs dans chaque source de données avec des formats (caractère, numérique ou date) et des valeurs en commun. Les formats communs garantissent l'interprétation correcte des valeurs. Par exemple, supposons que vous devez lire des données de deux sources : une source s'appelle JOB et contient des informations d'emploi, et l'autre source s'appelle SALARY et contient des informations de salaire. Vous pouvez joindre ces deux sources de données si chacune comprend un champ identifiant un même groupe d'employés de la même manière : par nom, par numéro de série ou par numéro de sécurité sociale. La jointure devient active lorsque les valeurs communes (par exemple, les numéros de sécurité sociales communs) sont récupérées pour les champs joints.

Une fois la commande JOIN lancée, vous pouvez lancer une requête TABLE, TABLEF, MATCH FILE ou GRAPH simple afin de lire la source de données jointe. Il suffit de spécifier uniquement la première source de données (fichier hôte) pour générer un rapport à partir de deux sources de données ou plus. Par exemple, supposons que vous créez un rapport qui se compose des sources de données JOB et SALARY. Vous pouvez exécuter l'équijonction suivante :

JOIN EMP_ID IN JOB TO ALL EMP_ID IN SALARY

Cette commande fait joindre le champ EMP_ID du fichier JOB au champ EMP_ID du fichier SALARY. JOB est le fichier hôte et SALARY est le fichier de référence. Vous pouvez alors exécuter la requête de rapport :

TABLE FILE JOB
PRINT SALARY AND JOB_TITLE BY EMP_ID
END

Le premier enregistrement récupéré est un fichier JOB relatif à l'employé #071382660. Ensuite, tous les enregistrements dans la source de données SALARY où se trouvent l'employé #071382660 sont récupérés. Ce processus continue jusqu'à ce que tous les enregistrements soient lus.

Vous pouvez effectuer une jointure en fonction de :


Haut de page

x
Référence : Augmentation de la vitesse de récupération dans les sources de données jointes

Vous pouvez augmenter la vitesse de récupération dans les structures jointes à l'aide d'un index externe. Cependant, le segment cible de l'index ne peut pas être un segment de référence. Pour plus d'informations, consultez Amélioration du traitement de rapports.


WebFOCUS