PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Comment le faire ?
  • Ajouter une jointure dans la requête de sélection en cours
  • Supprimer une jointure dans la requête de sélection en cours
  • Notion de jointure externe dans la requête de sélection en cours
  • Editer les conditions d'une jointure dans la requête de sélection en cours
  • Ajouter une condition
  • Réinitialiser les jointures de la requête
  • Limitations et remarques
  • Jointures spécifiques
  • Syntaxe SQL Server des jointures
  • Paramètres avancés
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Jointures entre les fichiers d'une requête de sélection
Présentation
Lorsque plusieurs fichiers sont utilisés dans une requête, WINDEV ou WEBDEV recherche automatiquement les liaisons décrites dans l'analyse entre ces fichiers. Ces liaisons sont appelées des jointures sous l'éditeur de requêtes.
Par exemple, la requête suivante sélectionne les numéros des commandes passées par les clients habitant à Toulouse. Les fichiers COMMANDE et CLIENT sont reliés par la rubrique NumClient. L'éditeur de requêtes a automatiquement défini la jointure entre ces deux fichiers.
Remarque : Les liaisons entre les fichiers apparaissent dans la représentation graphique de la requête uniquement si les deux fichiers reliés sont utilisés par la requête.
Par défaut, l'éditeur de requêtes crée automatiquement les jointures. Cependant, ces jointures peuvent ne pas correspondre au résultat voulu. Il est donc possible d'ajouter ou de supprimer les jointures. Les paragraphes suivants décrivent comment effectuer ces opérations.
Comment le faire ?

Ajouter une jointure dans la requête de sélection en cours

Pour ajouter une jointure dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure. La fenêtre de description des jointures de la requête s'affiche.
  2. Cliquez sur le bouton "Ajouter". Une fenêtre permettant de définir une nouvelle jointure s'affiche.Cliquez sur le bouton "Ajouter une jointure". Une fenêtre permettant de définir une nouvelle jointure s'affiche.
  3. Spécifiez les caractéristiques de la jointure à ajouter.
  4. Validez. La jointure est automatiquement ajoutée dans la requête.
Il est ainsi possible de créer des jointures multiples entre deux fichiers.
Remarque : Pour afficher la fenêtre de description des jointures depuis la fenêtre de description de la requête :
  • Cliquez sur le bouton "Avancé".
  • Affichez l'onglet "Jointures".
  • Cliquez sur le bouton "Éditer les jointures". La fenêtre de description des jointures s'affiche.

Supprimer une jointure dans la requête de sélection en cours

Pour supprimer une jointure dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure. La fenêtre de description des jointures de la requête s'affiche.
  2. Sélectionnez la jointure à supprimer.
  3. Cliquez sur le bouton "Supprimer". La jointure est automatiquement supprimée. Les jointures entre les fichiers sont automatiquement optimisées pour conserver le bon fonctionnement de la requête.Cliquez sur le bouton "Supprimer la jointure". La jointure est automatiquement supprimée. Les jointures entre les fichiers sont automatiquement optimisées pour conserver le bon fonctionnement de la requête.

Notion de jointure externe dans la requête de sélection en cours

Lors du calcul d'une jointure entre deux fichiers de données (fichier "Parent" et fichier "Fils"), par défaut seuls les enregistrements ayant une correspondance dans les deux fichiers sont conservés. Toutefois, il est possible grâce à la notion de "Jointure externe" de définir une règle pour inclure également :
  • les enregistrements du fichier "Parent" qui n'ont pas de correspondance dans le fichier "Fils".
  • les enregistrements du fichier "Fils" qui n'ont pas de correspondance dans le fichier "Parent".
Pour définir une jointure externe dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure.
  2. La fenêtre de description des jointures de la requête s'affiche.
  3. Sélectionnez la jointure à modifier.
  4. Sur cette jointure, deux options sont disponibles permettant de définir une jointure externe ("Inclure également").
  5. Sélectionnez la ou les options correspondant au résultat voulu.
  6. Validez.
Versions 22 et supérieures

Editer les conditions d'une jointure dans la requête de sélection en cours

Pour éditer les conditions d'une jointure dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure.
  2. La fenêtre de description des jointures de la requête s'affiche.
  3. Sélectionnez la jointure à éditer.
  4. Cliquez sur le bouton "Editer les conditions". La fenêtre d'édition des conditions s'affiche.Cliquez sur le bouton "Editer les conditions de la jointure". La fenêtre d'édition des conditions s'affiche.
  5. Vous pouvez :
    • Ajouter une nouvelle condition.
    • Modifier une condition.
    • Supprimer une condition.
    • Définir l'enchaînement logique des conditions à l'aide des opérateurs ET, OU et des parenthèses ( et ). Vous devez utiliser le numéro représentant la condition dans la formule. Par exemple, s'il y a 2 conditions, la formule peut être : "1 OU 2".

Ajouter une condition

Pour ajouter une condition :
  1. Cliquez sur le bouton . La fenêtre de création d'une condition s'affiche.
  2. Sélectionnez la rubrique pour laquelle la condition doit être créée (1). Seules les rubriques de type "clé" sont proposées.
  3. Sélectionnez l'opération à réaliser parmi la liste proposée (2).
  4. Sélectionnez le type de l'élément à comparer pour l'opération à réaliser (3) :
    • la valeur : cette option est sélectionnée dans le cas d'une valeur statique (en dur) dans la requête.
    • le paramètre : cette option est sélectionnée dans le cas d'un passage de paramètres lors de l'exécution de la requête.
    • la rubrique : cette option est sélectionnée dans le cas d'une comparaison avec une rubrique d'un autre fichier de la requête. Seules les rubriques de type "clé" sont proposées.
  5. Validez. La condition est ajoutée à la condition précédente.
  6. Pensez à vérifier l'enchaînement logique des conditions ainsi créées.
Nouveauté 22

Editer les conditions d'une jointure dans la requête de sélection en cours

Pour éditer les conditions d'une jointure dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure.
  2. La fenêtre de description des jointures de la requête s'affiche.
  3. Sélectionnez la jointure à éditer.
  4. Cliquez sur le bouton "Editer les conditions". La fenêtre d'édition des conditions s'affiche.Cliquez sur le bouton "Editer les conditions de la jointure". La fenêtre d'édition des conditions s'affiche.
  5. Vous pouvez :
    • Ajouter une nouvelle condition.
    • Modifier une condition.
    • Supprimer une condition.
    • Définir l'enchaînement logique des conditions à l'aide des opérateurs ET, OU et des parenthèses ( et ). Vous devez utiliser le numéro représentant la condition dans la formule. Par exemple, s'il y a 2 conditions, la formule peut être : "1 OU 2".

Ajouter une condition

Pour ajouter une condition :
  1. Cliquez sur le bouton . La fenêtre de création d'une condition s'affiche.
  2. Sélectionnez la rubrique pour laquelle la condition doit être créée (1). Seules les rubriques de type "clé" sont proposées.
  3. Sélectionnez l'opération à réaliser parmi la liste proposée (2).
  4. Sélectionnez le type de l'élément à comparer pour l'opération à réaliser (3) :
    • la valeur : cette option est sélectionnée dans le cas d'une valeur statique (en dur) dans la requête.
    • le paramètre : cette option est sélectionnée dans le cas d'un passage de paramètres lors de l'exécution de la requête.
    • la rubrique : cette option est sélectionnée dans le cas d'une comparaison avec une rubrique d'un autre fichier de la requête. Seules les rubriques de type "clé" sont proposées.
  5. Validez. La condition est ajoutée à la condition précédente.
  6. Pensez à vérifier l'enchaînement logique des conditions ainsi créées.

Editer les conditions d'une jointure dans la requête de sélection en cours

Pour éditer les conditions d'une jointure dans la requête de sélection en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure.
  2. La fenêtre de description des jointures de la requête s'affiche.
  3. Sélectionnez la jointure à éditer.
  4. Cliquez sur le bouton "Editer les conditions". La fenêtre d'édition des conditions s'affiche.Cliquez sur le bouton "Editer les conditions de la jointure". La fenêtre d'édition des conditions s'affiche.
  5. Vous pouvez :
    • Ajouter une nouvelle condition.
    • Modifier une condition.
    • Supprimer une condition.
    • Définir l'enchaînement logique des conditions à l'aide des opérateurs ET, OU et des parenthèses ( et ). Vous devez utiliser le numéro représentant la condition dans la formule. Par exemple, s'il y a 2 conditions, la formule peut être : "1 OU 2".

Ajouter une condition

Pour ajouter une condition :
  1. Cliquez sur le bouton . La fenêtre de création d'une condition s'affiche.
  2. Sélectionnez la rubrique pour laquelle la condition doit être créée (1). Seules les rubriques de type "clé" sont proposées.
  3. Sélectionnez l'opération à réaliser parmi la liste proposée (2).
  4. Sélectionnez le type de l'élément à comparer pour l'opération à réaliser (3) :
    • la valeur : cette option est sélectionnée dans le cas d'une valeur statique (en dur) dans la requête.
    • le paramètre : cette option est sélectionnée dans le cas d'un passage de paramètres lors de l'exécution de la requête.
    • la rubrique : cette option est sélectionnée dans le cas d'une comparaison avec une rubrique d'un autre fichier de la requête. Seules les rubriques de type "clé" sont proposées.
  5. Validez. La condition est ajoutée à la condition précédente.
  6. Pensez à vérifier l'enchaînement logique des conditions ainsi créées.

Réinitialiser les jointures de la requête

La réinitialisation des jointures permet de supprimer toutes les modifications effectuées sur les jointures depuis la création de la requête. L'éditeur de requêtes recrée automatiquement des jointures optimisées.
Pour réinitialiser la jointure de la requête en cours :
  1. Sélectionnez l'option "Éditer la jointure" avec un clic droit sur la jointure. La fenêtre de description des jointures de la requête s'affiche.
  2. Cliquez sur le bouton "Réinitialiser". Les jointures créées manuellement sont supprimées.
Limitations et remarques

Jointures spécifiques

Les jointures du type (A Join B on x=y) Join C on y=z ne sont pas gérées.
Pour exécuter des requêtes avec de telles jointures, il est nécessaire d'utiliser la fonction HExécuteRequête ou HExécuteRequêteSQL avec la constante hRequêteSansCorrection.
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsWindows MobileAccès Natifs

Syntaxe SQL Server des jointures

La syntaxe SQL Server des jointures est gérée (en édition d'une requête SQL et en exécution). Pour exécuter ces requêtes, il est possible d'utiliser la fonction HExécuteRequête ou HExécuteRequêteSQL.

Paramètres avancés

Par défaut, les jointures utilisent la syntaxe ISO (INNER JOIN / LEFT OUTER JOIN / RIGHT OUTER JOIN / FULL JOIN). Il est possible d'utiliser également la syntaxe Oracle des jointures. Cependant, cette syntaxe compatible avec Oracle 7 n'est pas conseillée.
Pour utiliser la syntaxe Oracle :
  1. Affichez la fenêtre de description de la requête.
  2. Cliquez sur le bouton "Avancé".
  3. Dans l'onglet "Jointures", sélectionnez le type de syntaxe voulue.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Problèmes...
IMPOSSIBLE de créer la jointure nécessaire....

La liste de rubrique ne montre pas tous les champs du fichier. Vraiment un problème puisque je ne peux pas saisir manuellement le nom.

Quelqu'un à une solution ?
Danielle LAMARRE
12 sep. 2018
Incompatibilité dans jointure
Les 2 paramétrages suivant ne sont pas compatible simultanément :
- jointure : inclure les enregistrements qui n'ont pas de ...
- passage de paramètre

Je viens de questionner votre SAV, mais si cela se confirme ... c'est très génant dans certaines applications ou l'on voudrait par exemple qu'un graphe filtré se comporte comme le graphe non filtré (affiche les enregistrements qui n'ont pas de ...).

Bien cordialament

Gilles TOLY
Gilles
25 jan. 2018
paramètre
Un petite explication sur le passage de paramètre ne ferrai pas de mal :)
Philippe MOURIER
19 mar. 2016