Jonction de sources de données

Rubriques :

Vous pouvez joindre deux sources de données ou plus afin de créer une plus grande structure de données intégrée depuis laquelle vous pouvez créer un rapport. La structure jointe est virtuelle ; c'est un moyen d'accéder à plusieurs sources de données comme si elles étaient une seule source. Vous pouvez activer jusqu'à 1023 jointures à la fois, soit 1024 segments au total, selon le nombre de segments actifs et le nombre et la longueur des champs (la longueur de tous les champs ne doit pas dépasser 32K).

Pour plus de détails sur les sources de données que vous pouvez utiliser dans une jointure, consultez Sources de données que l'on peut et ne peut pas joindre.


WebFOCUS
d>
x
Syntaxe : Joindre des champs réels

La syntaxe JOIN suivante exige que les champs utilisés pour joindre les fichiers soient des champs réels déclarés dans le fichier Master. La jointure peut-être de type simple et basée sur un seul champ dans chaque fichier à joindre, ou bien une jointure à champs multiples pour les sources de données qui supportent ce genre de comportement. La syntaxe suivante décrit les jointures simples et à champs multiples :

JOIN [LEFT_OUTER|INNER] hfld1 [AND hfld2 ...] IN hostfile [TAG tag1]
     TO [UNIQUE|MULTIPLE]
     crfield [AND crfld2 ...] IN crfile [TAG tag2] [AS joinname]
END

où :

JOIN hfld1
Est le nom d'un champ dans le fichier hôte contenant les valeurs partagées par un champ du fichier de référence. Ce champ est appelé le "champ hôte".
AND hfld2...
Peut être un autre champ du fichier hôte, avec les mises en garde indiquées ci-dessous. La phrase commençant par AND est requise lors pour la spécification de champs multiples.
  • Lors de la jointure de deux sources de données FOCUS, vous pouvez spécifier jusqu'à quatre champs alphanumériques dans le fichier hôte, qui, concaténés, peuvent contenir des valeurs partagées avec le fichier de référence. Si le suffixe du fichier est 'FOC', vous ne pouvez spécifier qu'un seul champ dans le fichier de référence. Supposons, par exemple, que le fichier de référence contient un champ de numéro de téléphone avec un format d'échange de préfixe de code régional. Le fichier hôte possède un champ de code régional, un champ préfixe et un champ Exchange. Ces trois champs peuvent être spécifiés pour une jointure au champ de numéro de téléphone dans le fichier de référence. La commande JOIN traite les trois champs comme étant un seul champ. Cette restriction du fichier de référence n'est pas imposée pour les autres sources de données.
  • Vous pouvez définir jusqu'à 16 champs pour les adaptateurs de données prenant en charge les jointures concaténées et à champs multiples. Consultez la documentation relative à votre adaptateur de données pour des informations spécifiques sur les fonctions de jointure que celui-ci prend en charge. Veuillez noter que ces jointures ne sont pas prises en charge par les sources de données FOCUS.
INNER
Spécifie une jointure interne. Si vous ne spécifiez pas de type de jointure dans la commande JOIN, la définition du paramètre ALL détermine le type de jointure à réaliser.
LEFT OUTER
Spécifie une jointure externe gauche. Si vous ne spécifiez pas de type de jointure dans la commande JOIN, la définition du paramètre ALL détermine le type de jointure à réaliser.

Notez que dans une jointure externe gauche, les enregistrements d'hôtes avec une instance à référence croisée manquante sont inclus dans la sortie du rapport. Pour contrôler la façon dont les tests sont traités contre les instances manquantes de segments à référence croisée, utilisez la commande SET SHORTPATH décrite dans Gestion d'une instance de segments manquante.

IN hostfile
Est le nom du fichier hôte.
TAG tag1
Est un nom de balise de 8 caractères maximum (généralement le nom du fichier Master), utilisé comme qualificateur unique pour les champs et les alias du fichier hôte.

Le nom de balise du fichier hôte doit être le même dans toutes les commandes JOIN d'une structure jointe.

TO [UNIQUE|MULTIPLE] crfld1
est le nom d'un champ dans le fichier de référence contenant des valeurs qui correspondent à celles de hfld1 (ou à celles des champs hôtes concaténés). Ce champ est appelé le "champ de référence".

Remarque : la commande UNIQUE ne renvoie qu'une seule instance. S'il n'y a pas d'instance correspondante dans le fichier de référence, elle fournit les valeurs par défaut (espace pour les champs alphanumériques, 0 pour les champs numériques).

Utilisez le paramètre MULTIPLE lorsque crfld1 risque d'avoir plusieurs instances en commun avec une valeur du champ hfld1. Il est important de noter que ALL est synonyme de MULTIPLE et que l'absence totale de ce paramètre est synonyme d'UNIQUE. Pour plus d'informations, consultez Structures jointes uniques et non uniques.

AND crfld2...
est le nom d'un champ dans le fichier de référence qui a des valeurs en commun avec hfld.

Remarque : crfld2 peut être qualifié. Ce champ n'est disponible que pour les adaptateurs prenant en charge les jointures à champs multiples.

IN crfile
Est le nom du fichier de référence.
TAG tag2
Est un nom de balise de 8 caractères maximum (généralement le nom du fichier Master), utilisé comme qualificateur unique pour les champs et les alias des fichiers de référence. Dans une structure de jointure récursive, si aucun nom de balise n'est fourni, tous les noms de champ et tous les alias ont pour préfixe les quatre premiers caractères du nom de la jointure. Pour plus d'informations, consultez Notes d'utilisation pour les structures jointes récurrentes.

Le nom de balise du fichier hôte doit être le même dans toutes les commandes JOIN d'une structure jointe.

AS joinname
Est un nom facultatif de 8 caractères maximum, que vous pouvez attribuer à la structure de jointure. Vous devez attribuer un nom unique à la structure de jointure si :
  • Vous voulez vous assurer qu'elle ne sera pas remplacée plus tard par une commande JOIN.
  • Vous voulez l'effacer sélectivement plus tard.
  • La structure est récursive. Consultez Structures jointes récurrentes.

Remarque : si vous n'attribuez pas de nom à la structure de jointure avec la phrase AS, il est supposé que le nom est blanc. Une jointure sans nom remplace une jointure existante sans nom.

FIN
Est requis lorsque la commande JOIN est composée de plus d'une ligne. Il met fin à la commande. Il doit commencer seul sur une ligne.


Exemple : Création d'une structure jointe unique simple

Voici un exemple de jointure unique simple :

JOIN JOBCODE IN EMPLOYEE TO JOBCODE IN JOBFILE AS JJOIN


Exemple : Création d'une jointure interne

Trois sources de données sont créées dans la procédure ci-dessous :

Ensuite, la procédure ajoute à EMPINFO un employé s'appelant Fred Newman, qui n'a pas d'enregistrement correspondant dans la source de données JOBINFO ou EDINFO.

TABLE FILE EMPLOYEE
SUM LAST_NAME FIRST_NAME CURR_JOBCODE
BY EMP_ID
ON TABLE HOLD AS EMPINFO FORMAT FOCUS INDEX EMP_ID CURR_JOBCODE
END
-RUN
 
TABLE FILE JOBFILE
SUM JOB_DESC
BY JOBCODE
ON TABLE HOLD AS JOBINFO FORMAT FOCUS INDEX JOBCODE
END
-RUN
 
TABLE FILE EDUCFILE
SUM COURSE_CODE COURSE_NAME
BY EMP_ID
ON TABLE HOLD AS EDINFO FORMAT FOCUS INDEX EMP_ID
END
-RUN
 
MODIFY FILE EMPINFO
FREEFORM EMP_ID LAST_NAME FIRST_NAME CURR_JOBCODE
MATCH EMP_ID
ON NOMATCH INCLUDE
ON MATCH REJECT
DATA
111111111, NEWMAN, FRED, C07,$
END

La requête suivante donne le contenu d'EMPINFO. Comme vous pouvez le constater, Fred Newman s'est bien ajouté à la source de données :

TABLE FILE EMPINFO
PRINT *
END

La sortie est :

EMP_ID     LAST_NAME        FIRST_NAME  CURR_JOBCODE
------     ---------        ----------  ------------
071382660  STEVENS          ALFRED      A07
112847612  SMITH            MARY        B14
117593129  JONES            DIANE       B03
119265415  SMITH            RICHARD     A01
119329144  BANNING          JOHN        A17
123764317  IRVING           JOAN        A15
126724188  ROMANS           ANTHONY     B04
219984371  MCCOY            JOHN        B02
326179357  BLACKWOOD        ROSEMARIE   B04
451123478  MCKNIGHT         ROGER       B02
543729165  GREENSPAN        MARY        A07
818692173  CROSS            BARBARA     A17
111111111  NEWMAN           FRED        C07

La commande JOIN suivante crée une jointure externe gauche entre les sources de données EMPINFO et JOBINFO :

JOIN CLEAR *
JOIN INNER CURR_JOBCODE IN EMPINFO TO MULTIPLE JOBCODE IN JOBINFO AS J0

Comme vous pouvez le constater, la commande JOIN spécifie une jointure multiple. Dans une jointure simple, le segment de référence n'est jamais considéré comme étant manquant et tous les enregistrements du fichier hôte figurent dans la sortie de rapport. La valeur par défaut (un espace pour les champs alphanumériques, un 0 pour les champs numériques) s'affiche lorsqu'aucune donnée réelle n'existe.

La requête suivante contient des champs de la structure jointe :

TABLE FILE EMPINFO
PRINT LAST_NAME FIRST_NAME JOB_DESC
END

Comme son code de poste n'a pas d'enregistrement correspondant dans la source de données JOBINFO, Fred Newman ne figure pas dans la sortie du rapport :

LAST_NAME  FIRST_NAME  JOB_DESC
---------  ----------  --------
STEVENS    ALFRED      SECRETARY
SMITH      MARY        FILE QUALITY
JONES      DIANE       PROGRAMMER ANALYST
SMITH      RICHARD     PRODUCTION CLERK
BANNING    JOHN        DEPARTMENT MANAGER
IRVING     JOAN        ASSIST.MANAGER
ROMANS     ANTHONY     SYSTEMS ANALYST
MCCOY      JOHN        PROGRAMMER
BLACKWOOD  ROSEMARIE   SYSTEMS ANALYST
MCKNIGHT   ROGER       PROGRAMMER
GREENSPAN  MARY        SECRETARY
CROSS      BARBARA     DEPARTMENT MANAGER


Exemple : Création d'une jointure externe gauche

La commande JOIN suivante crée une jointure externe gauche entre les sources de données EMPINFO et EDINFO :

JOIN CLEAR *
JOIN LEFT_OUTER EMP_ID IN EMPINFO TO MULTIPLE EMP_ID IN EDINFO AS J1

La requête suivante contient des champs de la structure jointe :

TABLE FILE EMPINFO
PRINT LAST_NAME FIRST_NAME COURSE_NAME
END

Tous les enregistrements d'employés figurent dans la sortie de rapport. Le caractère de donnée manquante (.) s'affiche pour les employés sans enregistrement correspondant dans la source de données EDINFO dans la colonne COURSE_NAME. S'il s'agissait d'une jointure unique, un espace s'afficherait à la place de chaque caractère de donnée manquante.

LAST_NAME  FIRST_NAME  COURSE_NAME
---------  ----------  -----------
STEVENS    ALFRED      FILE DESCRPT & MAINT
SMITH      MARY        BASIC REPORT PREP FOR PROG
JONES      DIANE       FOCUS INTERNALS
SMITH      RICHARD     BASIC RPT NON-DP MGRS
BANNING    JOHN        .
IRVING     JOAN        .
ROMANS     ANTHONY     .
MCCOY      JOHN        .
BLACKWOOD  ROSEMARIE   DECISION SUPPORT WORKSHOP
MCKNIGHT   ROGER       FILE DESCRPT & MAINT
GREENSPAN  MARY        .
CROSS      BARBARA     HOST LANGUAGE INTERFACE
NEWMAN     FRED        .


Exemple : Création de deux jointures internes avec une structure multi-chemins

Les commandes JOIN suivantes permettent de créer une jointure interne entre les sources de données EMPINFO et JOBINFO et une jointure interne entre les sources de données EMPINFO et EDINFO :

JOIN CLEAR *
JOIN INNER CURR_JOBCODE IN EMPINFO TO MULTIPLE JOBCODE IN JOBINFO AS J0
JOIN INNER EMP_ID IN EMPINFO TO MULTIPLE EMP_ID IN EDINFO AS J1

La structure créée par les deux jointures possède deux chemins d'accès indépendantes :

         SEG01
 01      S1
**************
*EMP_ID      **I
*CURR_JOBCODE**I
*LAST_NAME   **
*FIRST_NAME  **
*            **
***************
 **************
       I
       +-----------------+
       I                 I
       I SEG01           I SEG01
 02    I KM        03    I KM
..............    ..............
:EMP_ID      ::K  :JOBCODE     ::K
:COURSE_CODE ::   :JOB_DESC    ::
:COURSE_NAME ::   :            ::
:            ::   :            ::
:            ::   :            ::
:............::   :............::
 .............:    .............:
 JOINED  EDINFO    JOINED  JOBINFO

La requête suivante contient des champs de la structure jointe :

SET MULTIPATH=SIMPLE
TABLE FILE EMPINFO
PRINT LAST_NAME FIRST_NAME IN 12 COURSE_NAME JOB_DESC
END

Avec MULTIPATH=SIMPLE, les chemins d'accès indépendants créent des jointures indépendantes. Tous les enregistrements d'employé acceptés par l'une ou l'autre des jointures s'affichent dans la sortie du rapport. Seul Fred Newman (qui n'a pas d'enregistrement correspondant dans les fichiers de référence) est omis :

LAST_NAME  FIRST_NAME  COURSE_NAME                     JOB_DESC
---------  ----------  -----------                     --------
STEVENS    ALFRED      FILE DESCRPT & MAINT            SECRETARY
SMITH      MARY        BASIC REPORT PREP FOR PROG      FILE QUALITY
JONES      DIANE       FOCUS INTERNALS                 PROGRAMMER ANALYST
SMITH      RICHARD     BASIC RPT NON-DP MGRS           PRODUCTION CLERK
BANNING    JOHN        .                               DEPARTMENT MANAGER
IRVING     JOAN        .                               ASSIST.MANAGER
ROMANS     ANTHONY     .                               SYSTEMS ANALYST
MCCOY      JOHN        .                               PROGRAMMER
BLACKWOOD  ROSEMARIE   DECISION SUPPORT WORKSHOP       SYSTEMS ANALYST
MCKNIGHT   ROGER       FILE DESCRPT & MAINT            PROGRAMMER
GREENSPAN  MARY        .                               SECRETARY
CROSS      BARBARA     HOST LANGUAGE INTERFACE         DEPARTMENT MANAGER

Avec MULTIPATH=COMPOUND, seuls les employés avec des enregistrements correspondants dans les deux fichiers de référence figurent dans la sortie de rapport :

LAST_NAME  FIRST_NAME  COURSE_NAME                     JOB_DESC
---------  ----------  -----------                     --------
STEVENS    ALFRED      FILE DESCRPT & MAINT            SECRETARY
SMITH      MARY        BASIC REPORT PREP FOR PROG      FILE QUALITY
JONES      DIANE       FOCUS INTERNALS                 PROGRAMMER ANALYST
SMITH      RICHARD     BASIC RPT NON-DP MGRS           PRODUCTION CLERK
BLACKWOOD  ROSEMARIE   DECISION SUPPORT WORKSHOP       SYSTEMS ANALYST
MCKNIGHT   ROGER       FILE DESCRPT & MAINT            PROGRAMMER
CROSS      BARBARA     HOST LANGUAGE INTERFACE         DEPARTMENT MANAGER

Haut de page

x
Référence : Conditions pour des champs de référence croisée dans une équijonction

Les champs de référence utilisés dans une jointure doivent avoir les caractéristiques suivantes dans certaines sources de données :


Haut de page

x
Référence : Limitations de champs de groupe

Lorsque des champs de groupe sont utilisés dans une structure jointe, le groupe dans le fichier hôte et le groupe dans le fichier de référence croisée doivent comporter le même nombre d'éléments :


Haut de page

x
Référence : Notes d'utilisation pour la syntaxe de la commande JOIN externe et interne

Haut de page

x
Jointure d'un champ virtuel à un champ réel avec une équijonction

Comment :

Référence :

Vous pouvez utiliser la syntaxe basée DEFINE pour créer un champ hôte virtuel et joindre celui-ci à un champ de référence réel. Il se peut que l'expression DEFINE qui crée le champ hôte virtuel ne contienne que des champs du fichier hôte et des constantes. (Elle ne peut pas contenir de champs dans le fichier de référence). Vous pouvez effectuer plus d'une jointure depuis un champ virtuel.

Vous pouvez créer le champ hôte virtuel dans une autre commande DEFINE ou dans un fichier Master. Pour plus d'informations sur les fichier maîtres, reportez-vous au chapitre Description de données en langage WebFOCUS .

La même requête de rapport peut utiliser des champs virtuels basés JOIN, ainsi que des champs virtuels qui n'ont pas de rapport à la jointure.

Notez que si vous créez un champ virtuel dans une commande DEFINE, vous devez lancer la commande DEFINE après la commande JOIN, mais avant la requête TABLE, car une commande JOIN efface tous les champs créés par les commandes DEFINE pour le fichier hôte et la structure jointe. Les champs virtuels dans les fichier maîtres ne sont pas effacés.

Conseil : si une commande DEFINE précède la commande JOIN, vous pouvez mettre KEEPDEFINES à ON pour réintégrer les champs virtuels lors de l'analyse d'une commande JOIN subséquente. Pour plus d'informations, consultez Maintien de champs virtuels avec KEEPDEFINES.



x
Syntaxe : Joindre d'un champ virtuel à un champ réel

La commande JOIN basée DEFINE vous permet de joindre un champ virtuel dans le fichier hôte à un champ réel dans le fichier de référence. La syntaxe est :

JOIN [LEFT_OUTER|INNER] deffld WITH host_field ... 
     IN hostfile [TAG tag1]
     TO [UNIQUE|MULTIPLE] 
     cr_field IN crfile [TAG tag2] [AS joinname]
END

où :

JOIN deffld
Est le nom du champ virtuel du fichier hôte (le champ hôte). Le champ virtuel peut être défini dans le fichier Master ou par commande DEFINE. Pour plus d'informations, consultez Notes sur l'utilisation des champs virtuels avec des sources de données jointes.
WITH host_field
Est le nom de n'importe quel champ du segment hôte auquel vous souhaitez associer le champ virtuel. Cette association est requise pour localiser le champ virtuel.

La phrase WITH est requise, à moins que le paramètre KEEPDEFINES soit activé (ON) et que deffld ait été définie avant le lancement de la commande JOIN.

Pour savoir quel segment contient le champ virtuel, utilisez la commande de requête ? DEFINE après avoir lancé la commande DEFINE. Consultez le manuel Développement d'applications de reporting pour plus de détails sur les commandes Query.

INNER
Spécifie une jointure interne. Si vous ne spécifiez pas de type de jointure dans la commande JOIN, la définition du paramètre ALL détermine le type de jointure à réaliser.
LEFT OUTER
Spécifie une jointure externe gauche. Si vous ne spécifiez pas de type de jointure dans la commande JOIN, la définition du paramètre ALL détermine le type de jointure à réaliser.
IN hostfile
Est le nom du fichier hôte.
TAG tag1
Est un nom de balise de 8 caractères maximum (généralement le nom du fichier Master), utilisé comme qualificateur unique pour les champs et les alias des fichiers hôtes.

Le nom de balise du fichier hôte doit être le même dans toutes les commandes JOIN d'une structure jointe.

TO [UNIQUE|MULTIPLE] crfld1
Est le nom d'un champ réel dans la source de données de référence dont les valeurs correspondent à celles du champ virtuel. Il doit s'agir d'un champ réel, déclaré dans le fichier Master.

Remarque : la commande UNIQUE ne renvoie qu'une seule instance. S'il n'y a pas d'instance correspondante dans le fichier de référence, elle fournit les valeurs par défaut (espace pour les champs alphanumériques, 0 pour les champs numériques).

Utilisez le paramètre MULTIPLE lorsque crfld1 risque d'avoir plusieurs instances en commun avec une valeur du champ hfld1. Il est important de noter que ALL est synonyme de MULTIPLE et que l'absence totale de ce paramètre est synonyme d'UNIQUE. Pour plus d'informations, consultez Structures jointes uniques et non uniques.

IN crfile
Est le nom du fichier de référence.
TAG tag2
Est un nom de balise de 8 caractères maximum (généralement le nom du fichier Master), utilisé comme qualificateur unique pour les champs et les alias des fichiers de référence. Dans une structure de jointure récursive, si aucun nom de balise n'est fourni, tous les noms de champs et tous les alias ont pour préfixe les quatre premiers caractères du nom de la jointure. Pour plus d'informations, consultez Notes d'utilisation pour les structures jointes récurrentes.

Le nom de balise du fichier hôte doit être le même dans toutes les commandes JOIN d'une structure jointe.

AS joinname
Est un nom facultatif de 8 caractères maximum, que vous pouvez attribuer à la structure de jointure. Vous devez attribuer un nom unique à la structure de jointure si :
  • Vous voulez vous assurer qu'elle ne sera pas remplacée plus tard par une commande JOIN.
  • Vous voulez l'effacer sélectivement plus tard.
  • La structure est récursive et que vous ne spécifiez pas de noms de balise. Consultez Structures jointes récurrentes.

Si vous n'attribuez pas de nom à la structure de jointure avec la phrase AS, le champ de nom sera considéré comme étant vide. Une jointure sans nom remplace une jointure existante sans nom.

FIN
Est requis lorsque la commande JOIN est composée de plus d'une ligne. Il met fin à la commande. Il doit commencer seul sur une ligne.


x
Référence : Notes sur l'utilisation des champs virtuels avec des sources de données jointes

Les requêtes lisant des sources de données jointes peuvent contenir des champs virtuels qui sont définis dans :



Exemple : Création d'un champ hôte virtuel pour une structure jointe

Supposons qu'une chaîne de magasins envoie quatre directeurs de magasin à suivre une formation. Chaque directeur de magasin, identifié par un numéro d'identification, gère un magasin dans une différente ville. Les magasins et les villes dans lesquelles ils se trouvent sont compris dans la source de données SALES. Les identifiants des directeurs, les noms des cours et les dates auxquelles les directeurs ont assisté aux cours sont compris dans la source de données EDUCFILE.

La procédure suivante liste les cours que les directeurs ont suivis, en identifiant les directeurs selon la ville où ils travaillent. Il y a trois éléments à noter dans la procédure :

La procédure est :

JOIN ID_NUM WITH CITY IN SALES TO ALL EMP_ID IN EDUCFILE AS SALEDUC
DEFINE FILE SALES
ID_NUM/A9 = DECODE CITY ('NEW YORK' 451123478 'NEWARK' 119265415
                         'STAMFORD' 818692173 'UNIONDALE' 112847612);
END
TABLE FILE SALES
PRINT DATE_ATTEND BY CITY BY COURSE_NAME
END

La sortie est :

CITY                    COURSE_NAME                 DATE_ATTEND
----                    -----------                 -----------
NEW YORK                FILE DESCRPT & MAINT           81/11/15
NEWARK                  BASIC RPT NON-DP MGRS          82/08/24
STAMFORD                BASIC REPORT PREP DP MGRS      82/08/02
                        HOST LANGUAGE INTERFACE        82/10/21
UNIONDALE               BASIC REPORT PREP FOR PROG     81/11/16
                        FILE DESCRPT & MAINT           81/11/15

Haut de page

x
Formats de données et champs partagés

Généralement, les champs contenant les valeurs partagées dans les fichiers hôte et de référence doivent être au même format.

Si vous spécifiez des champs de fichier hôte multiples, la commande JOIN traite les commandes comme un seul champ concaténé. Pour obtenir la longueur du champ concaténé, il suffit d'additionner les longueurs des formats de fichier. Il faut respecter les règles suivantes :


Haut de page

x
Jointure de champs avec différents types de données numériques

Comment :

Vous pouvez joindre deux sources de données ou plus contenant des types de données numériques différents. Par exemple, vous pouvez joindre un champ au format décimal condensé court à un champ au format décimal condensé long, ou bien un champ au format entier à un champ au format décimal condensé. Cela permet une certaine souplesse pour créer des rapports à partir des sources de données jointes.

Remarque :



x
Syntaxe : Activer des jointures avec la conversion de type de données

Pour activer les jointures avec la conversion de type de données, lancez la commande

SET JOINOPT = [NEW|OLD]

où :

NEW
active les jointures avec la conversion de type de données.
OLD
désactive les jointures avec la conversion de type de données. Il s'agit de la valeur par défaut.


Exemple : Lancement de jointures avec la conversion de type de données

Comme vous pouvez joindre un champ au format décimal condensé court à un champ au format décimal condensé long, une jointure peut être définie dans les fichier maîtres suivants :

FILE=PACKED,SUFFIX=FIX,$
  SEGNAME=ONE,SEGTYPE=S0
   FIELD=FIRST,,P8,P4,INDEX=I,$
FILE=PACKED2,SUFFIX=FIX,$
  SEGNAME=ONE,SEGTYPE=S0
   FIELD=PFIRST,,P31,P16,INDEX=I,$

La commande JOIN doit ressembler à ce qui suit :

JOIN FIRST IN PACKED TO ALL PFIRST IN PACKED2 AS J1

Lorsque deux champs condensés sont joints, il est toujours nécessaire d'employer le format de signe préféré X'C' pour les valeurs positives et X'D' pour les valeurs négatives. Tous les autres signes non préférés sont convertis à X'C' ou à X'D'.


WebFOCUS