Onglet Jointure

Dans cette section :

Vous pouvez utiliser l'onglet Jointure pour manipuler les sources de données lors de l'utilisation d'une jointure. L'onglet Jointure n'est disponible qu'à la création d'une Jointure.

Une jointure est une connexion temporaire entre deux ou plusieurs sources de données partageant au moins un champ commun. Par exemple, un département Ressources Humaines pourrait avoir une source de données EMPLOYEE incluant un champ code fonction et une source de données JOBFILE incluant aussi un champ code fonction. Dans un tel scénario, les deux sources de données peuvent être jointes.

À la création d'une jointure, le format de champ et le type doivent être les mêmes pour les champs communs, mais il n'est pas nécessaire qu'ils aient le même nom.

Une fois les deux fichiers joints l'un à l'autre, et à chaque fois qu'un enregistrement est extrait du premier fichier (le fichier hôte), les enregistrements correspondants du second fichier (le fichier à référence croisée) sont eux aussi extraits. L'onglet Sortie est présenté dans l'image suivante.

Onglet Jointure


Haut de page

x
Groupe Fenêtres

Vous pouvez choisir le mode d'affichage des sources de données en cours dans la jointure. Le groupe Requêtes est montré ci-dessous.

Groupe Fenêtres

Les commandes sont :

Cascade

Organise les fenêtres en mosaïque avec chevauchement (défaut).

Horizontal

Organise les fenêtres en mosaïque horizontale sans chevauchement.

Vertical

Organise les fenêtres en mosaïque verticale sans chevauchement.


Haut de page

x
Groupe Jointure

Dans cette section :

Vous pouvez enregistrer, exécuter, ajouter, et automatiquement joindre des sources de données à la création d'une jointure. Le groupe Joindre est montré dans l'image suivante.

Groupe Jointures

Les commandes sont :

Nouveau

Crée un nouvel utilisateur.

Ajouter

Ajoute un nouveau fichier à la jointure.

Effacer

Lance la fenêtre de dialogue Effacer Jointures, dans laquelle vous pouvez spécifier les jointures disponibles à effacer.

Définir

Insère un champ Define dans une Jointure.

Les jointures qui sont basées sur les champs virtuels utilisent la syntaxe DEFINE pour créer un champ virtuel dans le fichier hôte que vous pouvez alors joindre à un champ de référence croisée 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 joindre un champ virtuel à plus d'un champ réel dans plus d'un fichier à référence croisée à l'aide des commandes Jointure différentes, chacune se référant au même fichier hôte.

Pour plus d'informations, consultez Jointures basées sur DEFINE.

Où/Si

Crée une jointure conditionnelle.

La jointure conditionnelle emploie la syntaxe basée sur WHERE pour spécifier des jointures basées sur des critères WHERE, et non seulement sur l'égalité entre champs. De plus, les champs de jointure hôte et de référence ne doivent pas être au même format.

Supposons qu'une source de données liste des employés en fonction de leurs numéros d'identifiant (le fichier hôte), et une autre source de données liste des cours de formation et les employés qui y sont assistés (le fichier de référence). Grâce à une jointure conditionnelle, vous pouvez joindre un identifiant employé dans le fichier hôte à un identifiant employé dans le fichier de référence afin de déterminer quels employés ont assisté à des cours de formation à une période comprise entre deux dates (la condition Where).

Afficher/Masquer

Affiche ou masque la fenêtre source .fex.

Jointure Automatique

Effectuer des jointures automatiques au sein des tables.



x
Créer une jointure

Vous pouvez utiliser le canvas Jointure pour joindre temporairement deux sources de données ou plus et utiliser leurs données comme si elles n'étaient qu'une seule source. Les fichiers joints restent physiquement séparés, mais sont traités comme une de source de données virtuelle. Le composant Jointure fournit une méthode graphique pour créer et manipuler tous les types de jointure. Pour créer une jointure, vous devez spécifier un fichier hôte, puis un fichier de référence croisée. Les fichiers hôtes et fichiers de référence croisée sont des fichiers maîtres.

Il vous incombe de mettre l'objet de jointure dans la position correcte, c'est-à-dire, avant un DEFINE, un rapport ou un graphique, et de l'exécuter. A moins d'être explicitement effacée, la jointure demeure active jusqu'à la fin de la session.



x
Comment : Joindre des sources de données
  1. Ouvrez une procédure existante, ou créez-en une nouvelle.
  2. Dans le panneau Vue du fichier, faites un clic droit sur le dossier de la procédure ou le composant que vous souhaitez créer d'après la Jointure, pointez vers Nouveau, puis cliquez sur Jointure.
  3. Sélectionnez un fichier Maître (fichier hôte) puis cliquez sur OK.

    La zone de travail Jointure s'ouvre et affiche les champs dans le fichier Maître.

  4. Sur l'onglet Jointure, dans le groupe Jointure, cliquez sur Ajouter.

    Vous pouvez également faire un clic droit sur la zone de travail de la jointure, puis sélectionner Ajouter un fichier.

  5. Sélectionnez un fichier Maître (fichier de référence croisée) puis cliquez sur OK.

    Le nouveau fichier Maître est ajouté à la zone de travail. Les champs en commun des deux fichiers sont joints par une ligne de connexion de jointure.

  6. Cliquez sur Enregistrer.
  7. Cliquez sur Exécuter.

    Une fenêtre de dialogue s'ouvre et affiche le code du composant, et soit un message d'erreur, soit du texte indiquant qu'aucune erreur n'existe.

  8. Cliquez sur OK, puis fermez la zone de texte Jointure.

    Vous pouvez ajouter un autre composant à la procédure en faisant un clic droit sur le composant Jointure, en pointant sur Nouveau, puis en cliquant sur le composant. Lorsque vous êtes invité à sélectionner un fichier Maître, sélectionnez le fichier hôte utilisé lors de la création du composant Jointure. Cela vous permet alors d'utiliser les sources de données jointes.



x
Jointures basées sur DEFINE

Les jointures qui sont basées sur les champs virtuels utilisent la syntaxe DEFINE pour créer un champ virtuel dans le fichier hôte que vous pouvez alors joindre à un champ de référence croisée 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. Il ne peut contenir de champs associés à des références croisées.

Un champ virtuel est un champ temporaire que vous décrivez dans un fichier ou une procédure Maître. La valeur du champ virtuel est calculée et traitée en tant que partie de sources de données.

Vous pouvez joindre un champ virtuel à plus d'un champ réel dans plus d'un fichier à référence croisée à l'aide des commandes Jointure différentes, chacune se référant au même fichier hôte.

Considérez les facteurs suivants avant de changer un champ virtuel en un champ d'hôte dans une jointure :

  • Si vous créez le champ virtuel dans une procédure au lieu d'un fichier Maître, vous devez vous assurer que le champ virtuel exécute après l'exécution de la jointure parce qu'une jointure supprime tout champ virtuel existant. Vous pouvez aussi utiliser l'expression SET KEEPDEFINE= ON.
  • Vous devez supprimer la ligne connecteur Jointure existante, si elle existe, avant de créer le champ virtuel Jointure. Vous ne pouvez pas joindre des champs multiples avec cette option. Le champ virtuel doit être le seul champ Jointure.


x
Comment : Utiliser un champ virtuel en tant que champ Jointure.
  1. Ouvrez une procédure existante, ou créez-en une nouvelle.
  2. Dans le panneau Vue du fichier, faites un clic droit sur le dossier de la procédure ou le composant que vous souhaitez créer d'après la Jointure, pointez vers Nouveau, puis cliquez sur Jointure.
  3. Sélectionnez un fichier Maître (fichier hôte) puis cliquez sur OK.

    La zone de travail Jointure s'ouvre et affiche les champs dans le fichier Maître.

  4. Sur l'onglet Jointure, dans le groupe Jointure, cliquez sur Définir.

    La fenêtre de dialogue Jointure DEFINE dans un fichier s'ouvre.

  5. Vous devez associer le champ virtuel avec un segment de source de données :
    1. Entrez le nom du champ virtuel que vous allez définir dans la zone de saisie Définir champ.
    2. Dans la boîte déroulante Avec champ, sélectionnez le nom de tout champ réél à partir du segment dans lequel vous souhaitez mettre le champ virtuel, et cliquez sur OK.

      Le champ virtuel apparaît dans la fenêtre Champs du fichier hôte :

  6. Sur l'onglet Jointure, dans le groupe Jointure, cliquez sur Ajouter.

    Vous pouvez également faire un clic droit sur la zone de travail de la jointure, puis sélectionner Ajouter un fichier.

  7. Sélectionnez un fichier Maître (fichier de référence croisée) puis cliquez sur OK.

    Le nouveau fichier Maître est ajouté à la zone de travail. Supprimez toutes lignes de connexion de jointures existantes.

  8. Pour terminer la jointure, glissez le curseur de la souris dans le champ virtuel à un champ correspondant dans le fichier à référence croisée.

    Vous ne pouvez pas joindre des champs multiples avec cette option. Le champ virtuel doit être le seul champ Jointure.



x
Création de jointures à multiples champs

Dans certains cas, il est possible que vous souhaitiez joindre plus d'un champ hôte avec un champ possédant une seule référence croisée. La procédure, tout comme la relation, diffère des jointures entre des source de données relationnelles, des jointures entrent de source de données WebFOCUS, et des jointures entre des sources de données relationnelles et WebFOCUS.

Il existe deux types de jointures multi-champs :

Le tableau suivant dresse la liste des types de jointures permises entre fichier :

Hôte

à référence croisée

Constructions de jointures multi-champs supportées

SQL*

SQL

Vous pouvez joindre deux fichiers SQL avec une construction multi-champs. Vous ne pouvez pas directement effectuer une jointure sur deux fichiers SQL avec une jointure à concaténation. Vous pouvez cependant utiliser une jointure basée sur Define pour parvenir au même résultat qu'une jointure avec concaténation produirait entre deux fichiers SQL.

WebFOCUS

WebFOCUS

Vous ne pouvez utiliser la construction jointure avec concaténation que pour joindre deux champs hôtes WebFOCUS à un champ référence croisée WebFOCUS unique.

SQL

WebFOCUS

Vous pouvez utiliser la construction jointure avec concaténation pour joindre deux champs hôtes SQL à un champ référence croisée WebFOCUS unique.

WebFOCUS

SQL

Vous pouvez joindre un fichier WebFOCUS et un fichier SQL à l'aide d'une construction jointure multi-champs. Vous ne pouvez pas joindre un fichier WebFOCUS et un fichier SQL avec une jointure à concaténation. Vous pouvez cependant utiliser une jointure basée sur Define pour parvenir au même résultat qu'une jointure avec concaténation produirait entre ces fichiers.

* SQL représente toutes les sources de données relationnelles.



x
Créer une jointure

Vous pouvez utiliser la construction jointure avec concaténation entre deux fichiers WebFOCUS et entre un fichier relationnel hôte et un fichier WebFOCUS à référence croisée. C'est là le seul type de construction jointure multi-champs que vous pouvez utiliser entre ces fichiers.

Les deux premiers champs hôtes sont combinés dans une jointure avec concaténation. Le champ résultat est alors joint au champ à référence croisée.



x
Utilisation de jointures conditionnelles

A l'aide des jointures conditionnelles, vous pouvez établir des jointures basées sur des conditions autres que l'égalité entre champs. De plus, les champs d'hôte et de référence ne doivent pas nécessairement contenir des formats correspondants, et le champ de référence croisée ne doit pas être indexé.

La jointure conditionnelle est prise en charge par FOCUS et tous les adaptateurs de données relationnelles. Dans la mesure où chaque source de données varie dans sa capacité de prise en charge de critères conditionnels complexes, l'optimisation de la syntaxe WHERE varie selon la source de données spécifiquement impliquée dans la jointure et la complexité des critères conditionnels.

Pour afficher une liste des sources de données jointes, sélectionnez le sujet de la requête suivante dans l'outil Requête, ou bien lancez la commande depuis la Console commande :

? JOIN

liste toutes les jointures actuellement actives, et indique celles qui sont basées sur les critères WHERE.



x
Comment : conditionnelles
  1. Ouvrez une procédure existante, ou créez-en une nouvelle.
  2. Dans le panneau Vue du fichier, faites un clic droit sur le dossier de la procédure ou le composant que vous souhaitez créer d'après la Jointure, pointez vers Nouveau, puis cliquez sur Jointure.
  3. Sélectionnez un fichier Maître (fichier hôte) puis cliquez sur OK.

    La zone de travail Jointure s'ouvre et affiche les champs dans le fichier Maître.

  4. Sur l'onglet Jointure, dans le groupe Jointure, cliquez sur Ajouter.

    Vous pouvez également faire un clic droit sur la zone de travail de la jointure, puis sélectionner Ajouter un fichier.

    Si le développement se fait dans la zone Serveurs de données ou dans le référentiel, une fenêtre de dialogue Liste de tables WebFOCUS s'ouvre. Si le développement se fait dans la zone Projets, la fenêtre de dialogue Ouvrir s'ouvre.

  5. Sélectionnez un fichier Maître (fichier de référence croisée) puis cliquez sur OK.

    Le nouveau fichier Maître est ajouté à la zone de travail. Les champs en commun des deux fichiers sont joints par une ligne de connexion de jointure.

  6. Sélectionnez la Jointure (la ligne de connecteur), puis, sur l'onglet jointure, dans le groupe Tâche, cliquez sur Where/If. La boîte de dialoguedu Générateur d'expressions s'affiche.
  7. Après avoir spécifié votre critère WHERE, cliquez sur OK pour revenir à l'outil Jointure.

    Si vous devez changer le type de jointure ou son nom, double cliquez sur la jointure conditionnelle pour lancer la fenêtre Propriétés jointures.



x
Personnalisation d'une jointure

Il est possible de personnaliser une jointure existante en changeant les fichiers ou les champs utilisés dans cette jointure. Si aucune jointure par défaut n'a été créée, cette même technique peut être utilisée pour définir explicitement une connexion.

Vous pouvez également changer le nom d'une jointure, rendre une jointure unique, utiliser un champ virtuel comme champ de jointure et ajouter des noms de balise aux fichiers de jointure.



x
Comment : Retirer un fichier depuis une Jointure
  1. Cliquez sur la table du fichier que vous souhaitez retirer.
  2. Appuyez sur la touche Supprimer. Une fenêtre de dialogue de confirmation apparaît.

    Si vous supprimez le fichier hôte, vous supprimez automatiquement tous les fichiers de référence.



x
Comment : Supprimer une jointure
  1. Faites un clic droit sur la ligne de connexion Jointure.
  2. Dans le menu raccourci, cliquez sur Supprimer.

    Vous pouvez aussi sélectionner la ligne de connecteurs jointures, puis sur l'onglet jointures, dans le groupe jointures, cliquez sur Effacer, ou encore appuyez sur la touche Suppr.

    Les fichiers apparaissent toujours dans la fenêtre, mais sans ligne de connexion les reliant.



x
Comment : Spécifier Champs Jointure

Pour créer votre propre jointure (après avoir supprimé la jointure existante, le cas échéant) :

  1. Sélectionnez un champ dans le panneau de fichiers hôte.
  2. Cliquez et tenez enfoncé le bouton de la souris sur le champ sélectionné.
  3. Faites glisser le champ sélectionné depuis le panneau de fichiers hôte sur le champ correspondant dans le panneau de fichiers de référence. Le pointeur change et il affiche l'icône appropriée lorsqu'une de jointure est possible.
  4. Lâchez le bouton de la souris.

    Une ligne de connexion de jointure s'affiche.



x
Comment : Créer des jointures supplémentaires

Vous pouvez laisser la fenêtre Jointure ouverte et créer une autre jointure en :

  • Cliquant sur Nouveau sur le ruban.
  • Cliquant sur Nouvelle Jointure dans le menu raccourci du canevas Jointure.

Vous pouvez définir jusqu'à 63 jointures concurrentes qui auront un maximum de 64 segments dans la nouvelle structure de jointure.



x
Comment : Faire d'une Jointure une Instance unique

Par défaut, toute jointure est une instance multiple.

Pour faire d'une jointure de instance unique :

  1. Faites un clic droit sur la ligne de connecteur Jointure.
  2. Dans le menu raccourcis, sélectionnez Instance unique.


x
Modification du Nom de Jointure

Un nom par défaut est automatiquement attribué à chaque jointure.

Vous pouvez utiliser le nom de jointure plus tard pour effacer la jointure et pour éviter qu'une autre jointure ne la remplace. Si vous supprimez complètement le nom de cette jointure, toute jointure non nommée subséquente la remplacera.



x
Comment : Changer ou supprimer le Nom par défaut d'une Jointure
  1. Faites un clic droit sur une ligne de connecteurs de jointure, et dans le menu raccourci, cliquez sur Nom Jointure. La fenêtre de dialogue Nom Jointure affiche le nom par défaut de la jointure.
  2. Éditez ou supprimez le nom dans cette fenêtre de dialogue Nom Jointure puis cliquez sur OK.

    Vous pouvez aussi fournir une description. Elle ne sera pas utilisée pour la commande Jointure, mais à des fins de référence. Un commentaire (-*) est ajouté à la procédure. Par exemple, -*JOINDESC J0.

    Remarque : certains mots ne peuvent pas être utilisés comme nom de jointure, dont ALL, AND, AS, IN, JOIN, TAG, TO et WITH.



x
Comment : Afficher les Structures de Jointure en cours

Pour afficher une liste des sources de données jointes, entrez cette commande dans la console de commande :

? JOIN

Cela a pour résultat l'affichage de toute jointure actuellement active.



x
Référence : Fenêtre de dialogue Définir jointure dans un fichier

La fenêtre de dialogue Définir jointure dans un fichier offre les champs et les options suivants :

Définir Champ

Identifie le champ virtuel en tant que champ hôte dans la jointure.

Avec Champ

Associe le champ virtuel à un segment dans la source de données : Sélectionnez n'importe quel champ du segment dans lequel vous souhaitez placer un champ virtuel.



x
Ajouter un Nom de balise

Les noms de balises fournissent une méthode pour faire des noms de champs identiques une instance unique. Ils fonctionnent comme des alias pour les noms de fichier dans la Jointure. Les noms de balises sont utiles lorsque vous joignez un fichier à lui-même, les noms de jointure de tout champ, les noms de segments, et les noms de fichiers sont identiques dans les fichiers hôte et à référence croisée. Les noms de balises s'avèrent aussi utiles si un fichier est utilisé en tant que cible plus d'une fois dans la structure de la jointure.

Une procédure peut utiliser le nom de balise d'un fichier en tant que qualificateur pour les noms de champ et les alias dans le fichier.

Si vous créez un rapport utilisant une jointure récursive sans nom de balise, les noms de champ dans le fichier à référence croisée seront préfixés avec les quatre premiers caractères du nom de jointure.



x
Comment : Ajouter un Nom de balise
  1. Double cliquez sur la ligne de connecteur entre les tables. La fenêtre de dialogue Propriétés de jointure s'affiche. La fenêtre de dialogue Propriétés Jointure s'ouvre aussi si vous effectuez un clic droit sur un lien sélectionné, et que vous cliquez sur Propriétés dans le menu raccourci. Une ligne épaisse apparaît lorsque une Jointure est sélectionnée.
  2. Entrez les noms dans les champs nom Balise Hôte et Balise croisée et cliquez sur OK.

    Remarque :

    • Les mots suivants ne peuvent pas être utilisés comme nom de balise : ALL, AND, AS, IN, JOIN, TAG, TO et WITH.
    • Les noms de balise peuvent avoir une longueur jusque 8 caractères.



x
Utilisation des jointures

Une fois que la Jointure existe, vous pouvez l'extraire, effectuer un rapport, voir sa syntaxe, et l'effacer. Effacer une jointure la rend inactive.



x
Référence : Fenêtre de dialogue de propriétés de légende

La fenêtre de dialogue Effacer jointure dans un fichier offre les champs et les options suivants :

Jointures disponibles

Liste de toutes les jointures en cours.

Jointures à effacer

Affiche les jointures qui seront supprimées si vous cliquez sur OK.

Flèche droite double

Déplace les jointures sélectionnées dans la liste Jointures à effacer.

Flèche droite gauche

Déplace les jointures sélectionnées dans la liste Jointures disponibles.



x
Référence : Fenêtre de dialogue de propriétés de légende

Pour visualiser ou modifier les propriétés d'une jointure, faites un clic droit sur le lien jointure puis sélectionnez Propriétés, ou bien double cliquez sur Jointure. La fenêtre Sélection du Client s'ouvre, comme le montre l'image suivante.

Propriétés de jointure

La fenêtre de dialogue Propriétés jointure offre les champs et les options suivants :

Balise hôte

Saisissez un nom de balise pour la source de données.

Balise croisée

Saisissez un nom de balise pour le fichier de référence.

Champs sélectionnés

Affiche le champ du fichier hôte qui a été joint au fichier de référence. Une flèche simple indique une Jointure unique ; une double flèche indique une Jointure non unique.

Onglet Options de jointure

Affiche le nom de la jointure. Pour changer le nom de jointure par défaut, saisissez un nouveau nom dans ce champ et cliquez sur OK.

Remarque : le nom de jointure doit être unique et ne peut pas dépasser huit caractères.

Description

Entrez une description. Cette description n'est pas utilisée dans la commande de jointure. Elle est utilisée à titre de référence. Un commentaire (-*) est ajouté à la procédure.

Type de Join

Indique le type de jointure. Choisissez parmi les types suivants :

Instance multiple (non-unique)."Une structure de jointure « one-to-many » (origine unique, destination multiple) fait correspondre une valeur dans la source de données hôte à plusieurs valeurs dans le champ de référence. " La jointure d'un identifiant employé dans une source de données d'employés d'une société à un identifiant employé dans une source de données qui liste tous les cours de formation proposés par cette société crée une liste de tous les cours auxquels chaque employé a assisté, ou une jointure de la seule instance de chaque identifiant dans le fichier hôte aux instances multiples de cet identifiant dans le fichier de référence. Ceci est la sélection par défaut.

Instances simples (anciennement appelée Unique). Une structure « one-to-one » (origine unique, destination unique) qui fait correspondre une valeur dans la source de données hôte à une valeur dans la source de données de référence. Un exemple d'une jointure simple (unique) est la jointure d'un identifiant employé dans une source de données d'employé à un identifiant employé dans une source de données de salaire.

Non spécifié. Lorsqu'une jointure créée dans une version plus ancienne que 7.1 est ouverte dans l'outil de jointure (JOIN), cette option est sélectionnée dans les propriétés de la jointure. Les versions précédant la version 7.1 prennaient implicitement les valeurs de type de jointure et d'autres opérateurs ; ceux-ci n'ont pas été spécifiés dans le code généré. Comme l'outil de jointure (JOIN) est incapable de déterminer le type de jointure créée, si d'autres commandes ont été définies pour contrôler la jointure, vous devez sélectionner les options pertinentes (Jointure interne, Jointure externe gauche, Instances multiples, Instances uniques) dans l'outil de jointure (JOIN) pour mettre à niveau le code généré.

Jointure interne. Une jointure résultant de l'omission dans le rapport de lignes hôte qui n'ont pas de lignes correspondantes dans le fichier de référence.

Jointure externe gauche. Etend les résultats d'une jointure interne et récupère des enregistrements des tables hôte et de référence, y compris ceux de la table de gauche (hôte) et ceux de la table de droite (de référence) partageant des valeurs communes. Lorsqu'il n'y a pas de valeur correspondante dans la table de référence, la jointure récupère tout de même des enregistrements de la table hôte.


WebFOCUS