Une
requête composée (instruction SQL correspondante :
UNION) permet de combiner plusieurs requêtes de sélection. Chaque requête de sélection doit porter sur des fichiers de données de structure identique.
Par exemple, sélection des clients dont le nom commence par la lettre 'A' et des prospects habitant Nice. Pour réaliser cette sélection, il est nécessaire de combiner les deux requêtes suivantes :
- sélection des clients dont le nom commence par la lettre 'A'. Cette requête est basée sur le fichier de données "Client".
- sélection des prospects habitant Londres. Cette requête est basée sur le fichier de données "Prospect".
Les fichiers de données "Client" et "Prospect" sont de même structure dans l'analyse.
Les enregistrements communs aux deux fichiers de données ("Client" et "Prospect") peuvent :
- soit apparaître une seule fois dans le résultat de la requête (opérateur UNION).
- soit apparaître deux fois dans le résultat de la requête (opérateur UNION ALL).
Pour combiner des requêtes, il est nécessaire de connaître :
- le nom des requêtes à combiner.
- si les enregistrements communs doivent apparaître une seule ou plusieurs fois dans le résultat de la requête.
Remarque : Les rubriques apparaissant dans le résultat de la requête composée correspondent aux rubriques de la première requête exécutée. Ainsi, dans notre exemple, les personnes qui sont à la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Londres n'apparaîtront qu'une seule fois dans le résultat de la requête.
L'éditeur de requêtes génère automatiquement le code SQL de cette requête.
Pour visualiser le code SQL d'une requête :
- Affichez le menu contextuel du graphe de la requête.
- Sélectionnez l'option "Code SQL".
Vous pouvez également utiliser la touche F2.
Par exemple :
SELECT
CLIENT.NomClient AS NomClient
FROM
CLIENT
WHERE
CLIENT.NomClient LIKE 'A%'
UNION
SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = 'Londres'
Pour que les personnes qui sont à la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Londres apparaissent plusieurs fois dans le résultat de la requête, le code SQL suivant :
SELECT
CLIENT.NomClient AS NomClient
FROM
CLIENT
WHERE
CLIENT.NomClient LIKE 'A%'
UNION ALL
SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = 'Londres'