Comment faire une requête Subselect dans Access

April 20

Dans toute application de base de données qui utilise Structured Query Language (SQL) pour créer des requêtes, la requête "Select" est le cheval de bataille. Tout de vues simples jointures complexes et les calculs sont effectués par des variations sur la requête de sélection. Le sous-sélection ou sous-requête est tout simplement une instruction select imbriquée dans une autre requête de sélection. La meilleure façon de construire et de comprendre une requête de sous-sélection est de construire et d'exécuter les deux parties de la requête individuellement pour vous assurer que vous avez les résultats que vous voulez, puis les combiner en une requête de sous-sélection. Cet exemple va créer une requête pour montrer que les clients ont rien acheté dans plus de 90 jours.

Instructions

1 Créer une requête pour sélectionner et afficher tous les clients. Pour créer toute requête dans Access, cliquez sur «Requêtes» dans le menu de l'objet, puis cliquez sur "Design" ou "Nouveau" dans la barre de menu. Lorsque la fenêtre de requête apparaît, cliquez sur "View" puis "SQL View" pour ouvrir une fenêtre de texte pour saisir la requête. Tapez la requête, puis cliquez sur le point d'exclamation rouge pour exécuter la requête.

La syntaxe est la suivante:

"Sélectionnez Customers.ID, Customers.Company de clients"

Cela affiche tous les ID des clients et des noms de sociétés dans la base de données clients.

2 Créer une requête qui montre toutes les commandes qui ont été placés dans les 90 derniers jours. La syntaxe de cette requête ressemble à ceci:

"Sélectionnez Orders.OrderID de commandes où Orders.CustomerID = Customers.CustomerID et Orders.OrderDate> Date () - 90)

Cette requête affichera uniquement le champ "orderID" qui a un numéro d'identification de client valide en elle et une vente dans les 90 derniers jours.

3 Créez la requête de sous-sélection en combinant ces deux requêtes.

"Sélectionnez Customers.ID, Customers.Company de clients où existe pas

(Sélectionnez Orders.OrderID

de commandes

où Orders.CustomerID = Customers.CustomerID

and Orders.OrderDate > Date() - 90)

Cette requête, en effet, montre tout de la première requête qui ne sont pas dans la deuxième requête. En d'autres termes, cela montre tous les clients que tout n'ont pas acheté dans les 90 derniers jours. La clé de la sous-sélection est le "où existe pas" clause.

Conseils et avertissements

  • Quel que soit le type ou la complexité de la requête que vous essayez de construire, toujours construire et tester chaque partie séparément. Cela rendra le débogage beaucoup plus facile.
  • Si vous construisez des requêtes ou des sous-requêtes qui sont destructrices, telles que supprimer ou mettre à jour des requêtes, toujours tester avec une requête de sélection d'abord si vous êtes sûr de ce que vous demandez de supprimer ou modifier.

          

Post a comment: