Bonjour
1 - Une sous-requête est une requête dont le résultat est utilisé par une autre requête.
Par exemple, vous voulez sélectionner les commandes dont le montant est supérieur au montant moyen des commandes. Le montant moyen des commandes n'est pas connu directement. Ce montant moyen va être retourné par une autre requête (appelée ici sous-requête).
Une sous-requête peut être utilisée :
- soit en tant que condition de sélection.
- soit en tant que fichier de la requête principale.
SELECT NumCommande
FROM COMMANDE
WHERE Montant (SELECT AVG(Montant)
FROM COMMANDE)
// ou Une sous-requête peut être utilisée en tant que fichier de la requête principale
SELECT Rubrique1 [, Rubrique2]
FROM (SELECT Rubrique1 FROM Fichier1 [WHERE ...])
2 - Les requêtes composées permettent de combiner des requêtes de sélection (instruction SELECT). Chaque requête de sélection doit porter sur des fichiers de structure identique.
Pour réaliser une requête composée, il est possible d'utiliser :
l'opérateur UNION.
l'opérateur UNION ALL.
Exemple : Réaliser une requête contenant les clients dont le nom commence par la lettre 'A' et les prospects habitant Nice. Pour réaliser cette requête, il est nécessaire de combiner les deux requêtes suivantes :
sélection des clients dont le nom commence par la lettre 'A'.
sélection des prospects habitant Nice.
Les enregistrements communs aux deux fichiers 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).
SELECT NomClient
FROM CLIENT
WHERE NomClient LIKE 'A%'
UNION
SELECT NomProspect
FROM PROSPECT
WHERE VilleClient = 'Nice'
// ou
SELECT NomClient
FROM CLIENT
WHERE NomClient LIKE 'A%'
UNION ALL
SELECT NomProspect
FROM PROSPECT
WHERE VilleClient = 'Nice'