Cet article explique comment utiliser les requêtes de valeurs principales et les requêtes Totaux pour rechercher les dates les plus récentes ou les plus récentes dans un jeu d’enregistrements. Cela peut vous aider à répondre à diverses questions d’entreprise, par exemple, quand un client a passé une commande pour la dernière fois ou dont les cinq trimestres ont été les plus pratiques pour les ventes, par ville.
Contenu de cet article
Présentation
Vous pouvez classer des données et examiner les éléments les mieux classés à l’aide d’une requête Valeurs élevées. Une requête Valeur supérieure est une requête Sélection qui renvoie un nombre spécifié ou un pourcentage de valeurs à partir du haut des résultats (par exemple, les cinq pages les plus populaires d’un site web). Vous pouvez utiliser une requête de valeurs hautes par rapport à n’importe quel type de valeur, qui ne doit pas être des nombres.
Si vous voulez grouper ou synthétiser vos données avant de les classer, vous n’avez pas besoin d’utiliser une requête Valeurs hautes. Par exemple, supposons que vous devrez rechercher les numéros de vente pour une date donnée pour chaque ville dans laquelle travaille votre entreprise. Dans ce cas, les villes deviennent des catégories (vous devez trouver les données par ville), vous devez donc utiliser une requête Totaux.
Lorsque vous utilisez une requête des premières valeurs pour rechercher les enregistrements qui contiennent les dates les plus récentes ou les plus récentes dans une table ou un groupe d’enregistrements, vous pouvez répondre à diverses questions professionnelles, telles que les suivantes :
-
Qui a passé le plus de ventes récemment ?
-
Quand un client a-t-il passé une commande pour la dernière fois ?
-
À quel moment les trois anniversaires suivants sont-ils dans l’équipe ?
Pour créer une requête de valeurs élevées, commencez par créer une requête Sélection. T triez ensuite les données en fonction de votre question (que vous recherchiez la partie supérieure ou inférieure). Si vous devez grouper ou synthétiser les données, transformez la requête Sélection en requête Totaux. Vous pouvez ensuite utiliser une fonction d’agrégation, telle que Max ou Min pour renvoyer la valeur la plus élevée ou la plus faible, ou le premier ou le dernier pour renvoyer la date la plus récente ou la plus récente.
Cet article part du principe que les valeurs de date que vous utilisez ont le type de données Date/heure. Si vos valeurs de date seent dans un champ texte, .
Envisagez d’utiliser un filtre au lieu d’une requête Valeurs principales
Un filtre est généralement préférable si vous avez une date spécifique à l’esprit. Pour déterminer si vous devez créer une requête des valeurs hautes ou appliquer un filtre, envisagez ce qui suit :
-
Si vous souhaitez renvoyer tous les enregistrements dont la date correspond, est antérieure ou ultérieure à une date spécifique, utilisez un filtre. Par exemple, pour voir les dates des ventes entre avril et juillet, appliquez un filtre.
-
Si vous souhaitez renvoyer une quantité spécifiée d’enregistrements dont les dates sont les plus récentes ou les plus récentes dans un champ et que vous ne connaissez pas les valeurs de date exactes ou qui ne sont pas importantes, vous pouvez créer une requête sur les valeurs les plus importantes. Par exemple, pour consulter les cinq meilleurs trimestres de ventes, utilisez une requête Valeurs les plus importantes.
Pour plus d’informations sur la création et l’utilisation de filtres, voir l’article Appliquer un filtre pour afficher des enregistrements sélectionnés dans une base de données Access.
Préparer les exemples de données à suivre, ainsi que les exemples
Les étapes de cet article utilisent les données des exemples de tables suivants.
Table Employés
LastName |
Prénom |
Adresse |
Ville |
PaysRégion |
Date de naissance |
Date d’embauche |
Jacques |
Étienne |
7, place Beaubernard |
Saint-Denis |
USA |
05/05/1968 |
10-juin-1994 |
Heloo |
Dessais |
52 avenue des anémones |
Valenciennes |
USA |
22 mai 1957 |
22 novembre 1996 |
Antoine |
Desso |
3122 75e Ave. S.W. |
Toulouse |
USA |
11 novembre 1960 |
11 mars 2000 |
Bagel |
Jean Philippe |
1 Impasse des vallées |
Paris |
UK |
22 mars 1964 |
22-juin-1998 |
Prix |
Julien |
2, av. de Slovaquie |
Marseille |
Mexique |
05-juin-1972 |
05 janvier 2002 |
Hughes |
l |
3122, 75, place de l’A0 |
Seattle |
USA |
23 janvier 1970 |
23-avr-1999 |
Desso |
Bén |
67, av. du Mali |
Nice |
USA |
14-avr-1964 |
14-Oct-2004 |
Bye |
Dana |
2 Nosey Pkwy |
Brest |
USA |
29-Oct-1959 |
29 mars 1997 |
Tableau EventType
TypeID |
Type d’événement |
1 |
Lancement du produit |
2 |
Fonction d’entreprise |
3 |
Fonction Privée |
4 |
Lever de fonds |
5 |
Salon commercial |
6 |
Conférence |
7 |
Concert |
8 |
Présenter |
9 |
Salon de la rue |
Table Consommateurs
CustomerID |
Société |
Coordonnées |
1 |
Contoso, Ltd. Graphisme |
Jonathan Haas |
2 |
Tailspin Toys |
Ellen Adams |
3 |
Fabrikam |
Carol Philips |
4 |
Wingtip Toys |
Lucio Iallo |
5 |
A. Datum |
Mandar Samant |
6 |
Adventure Works |
Brian Burke |
7 |
Design Institute |
Jaka Stele |
8 |
School of Fine Art |
Milena Duomanova |
Table Events
EventID (ID d’événement) |
Type d’événement |
Client |
Date de l’événement |
Prix |
1 |
Lancement du produit |
Contoso, Ltd. |
4/14/2011 |
10 000 $ |
2 |
Fonction d’entreprise |
Tailspin Toys |
4/21/2011 |
8 000 € |
3 |
Salon commercial |
Tailspin Toys |
5/1/2011 |
25 000 $ |
4 |
Présenter |
Graphic Design Institute |
5/13/2011 |
4 500 € |
5 |
Salon commercial |
Contoso, Ltd. |
5/14/2011 |
55 000 $ |
6 |
Concert |
School of Fine Art |
5/23/2011 |
12 000 € |
7 |
Lancement du produit |
A. Datum |
6/1/2011 |
15 000 € |
8 |
Lancement du produit |
Wingtip Toys |
6/18/2011 |
21 000 € |
9 |
Lever de fonds |
Adventure Works |
6/22/2011 |
1 300 $ |
10 |
Conférence |
Graphic Design Institute |
6/25/2011 |
2 450 $ |
11 |
Conférence |
Contoso, Ltd. |
04.07.11 |
3 800 $ |
12 |
Salon de la rue |
Graphic Design Institute |
04.07.11 |
5 500 € |
Remarque : Les étapes de cette section supposent que les tables Clients et Type d’événement résident du côté « un » des relations un-à-plusieurs avec la table Events. Dans ce cas, la table Events partage les champs CustomerID et TypeID. Les requêtes Totaux décrites dans les sections suivantes ne fonctionneront pas sans ces relations.
Coller les exemples de données dans des feuilles de calcul Excel
-
Démarrez Excel. Un workbook vide s’ouvre.
-
Appuyez sur Ctxt+F11 pour insérer une feuille de calcul (quatre sont nécessaires).
-
Copiez les données de chaque exemple de table dans une feuille de calcul vide. Incluez les en-tête de colonne (la première ligne).
Créer des tables de base de données à partir des feuilles de calcul
-
Sélectionnez les données de la première feuille de calcul, en-tête de colonne inclus.
-
Cliquez avec le bouton droit sur le volet de navigation, puis cliquez sur Coller.
-
Cliquez sur Oui pour confirmer que la première ligne contient des en-tête de colonne.
-
Répétez les étapes 1 à 3 pour chacune des feuilles de calcul restantes.
Rechercher la date la plus ou la moins récente
Les étapes de cette section utilisent les exemples de données pour illustrer le processus de création d’une requête Valeurs.
Créer une requête Valeurs principales de base
-
Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.
-
Double-cliquez sur la table Employés, puis cliquez sur Fermer.
Si vous utilisez les exemples de données, ajoutez la table Employés à la requête.
-
Ajoutez les champs que vous voulez utiliser dans votre requête à la grille de création. Vous pouvez double-cliquer sur chaque champ, ou glisser-déposer chaque champ sur une cellule vide dans la ligne Champ.
Si vous utilisez l’exemple de table, ajoutez les champs Prénom, Nom et Date de naissance.
-
Dans le champ qui contient vos valeurs les plus hautes ou les plus basses (champ Date de naissance, si vous utilisez l’exemple de table), cliquez sur la ligne Trier et sélectionnez Croissant ou Décroit.
L’ordre de tri décroit alors la date la plus récente et l’ordre de tri croissant la date la plus tôt.
Important : Vous devez définir une valeur dans la ligne Trier uniquement pour les champs qui contiennent vos dates. Si vous spécifiez un ordre de tri pour un autre champ, la requête ne retourne pas les résultats voulus.
-
Sous l’onglet Création, dans le groupe Outils, cliquez sur la flèche vers le bas en regard de Tous (la liste Valeurs les plus hautes), puis entrez le nombre d’enregistrements que vous voulez voir ou sélectionnez une option dans la liste.
-
Cliquez sur Exécuter pour exécuter la requête et afficher les résultats en affichage Feuille de données.
-
Enregistrez la requête en tant que NextBirthDays.
Vous pouvez constater que ce type de requête de valeurs élevées peut répondre à des questions de base, telles que la plus ancienne ou la plus jeune de l’entreprise. Les étapes suivantes expliquent comment utiliser des expressions et d’autres critères pour ajouter de l’puissance et de la flexibilité à la requête. Les critères affichés à l’étape suivante retournent les trois anniversaires d’employés suivants.
Ajouter des critères à la requête
Ces étapes utilisent la requête créée au cours de la procédure précédente. Vous pouvez suivre une requête de valeurs principales différente tant qu’elle contient des données Date/Heure réelles, et non des valeurs de texte.
Conseil : Pour mieux comprendre le fonctionnement de cette requête, basculez entre le mode Création et le mode Feuille de données à chaque étape. Si vous voulez afficher le code de requête réel, basculez vers SQL vue. Pour basculer entre les affichages, cliquez avec le bouton droit sur l’onglet en haut de la requête, puis cliquez sur l’affichage de votre choix.
-
Dans le volet de navigation, cliquez avec le bouton droit sur la requête NextBirthDays, puis cliquez sur Mode Création.
-
Dans la grille de création de requête, dans la colonne à droite de BirthDate, entrez ce qui suit :
MonthPart: DatePart(« m »,[BirthDate]).
Cette expression extrait le mois de BirthDate à l’aide de la fonction PartDate. -
Dans la colonne suivante de la grille de création de requête, entrez ce qui suit :
DayOfMonthRé : PartDate(« j »,[DateNaissation])Cette expression extrait le jour du mois de DateNaissation à l’aide de la fonction
PartDate. -
Cochez les cases de la ligne Afficher pour chacune des deux expressions que vous vient d’entrer.
-
Cliquez sur la ligne Trier pour chaque expression, puis sélectionnez Croissant.
-
Dans la ligne Critères de la colonne Date de naissance, tapez l’expression suivante :
Mois([Date de naissance]) > Mois(Date()) OU Mois([Date de naissance])= Mois(Date()) ET Jour([Date de naissance])>Jour(Date())Cette expression fait les choses suivantes
:-
Month( [Date de naissance]) > Mois(Date()) spécifie que la date de naissance de chaque employé tombe dans un mois futur.
-
Le mois([Date denaissance])= Mois(Date()) Et Jour([Date de naissance])>Jour(Date()) spécifie que si la date de naissance se produit dans le mois en cours, l’anniversaire tombe le jour actuel ou après.
En bref, cette expression exclut tous les enregistrements dont l’anniversaire a lieu entre le 1er janvier et la date actuelle.
Conseil : Pour plus d’exemples d’expressions de critères de requête, voir l’article Exemples de critères de requête.
-
-
Sous l’onglet Création, dans le groupe Paramétrage de requête, tapez 3 dans la zone Retour.
-
Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter .
Remarque : Dans votre propre requête à l’aide de vos propres données, il est possible que vous voyez parfois plus d’enregistrements que vous n’en avez spécifiés. Si vos données contiennent plusieurs enregistrements qui partagent une valeur qui figure parmi les valeurs les plus élevées, votre requête retourne tous ces enregistrements, même si cela implique de renvoyer plus d’enregistrements que vous le souhaitez.
Rechercher les dates les plus ou moins récentes pour des groupes d’enregistrements
Vous utilisez une requête Totaux pour rechercher les dates les plus récentes ou les plus récentes pour les enregistrements qui se trouvent en groupes, tels que les événements regroupés par ville. Une requête Totaux est une requête Sélection qui utilise des fonctions d’agrégation (telles que Regrouper par, Mdans,Max,Compte,Premier etDernier) pour calculer les valeurs de chaque champ de sortie.
Incluez le champ que vous voulez utiliser pour les catégories (à grouper par) et le champ avec les valeurs que vous voulez synthétiser. Si vous incluez d’autres champs de sortie (par exemple, les noms des clients lorsque vous groupez par type d’événement), la requête utilise également ces champs pour effectuer des groupes, en modifiant les résultats afin qu’ils ne répondent pas à votre question d’origine. Pour étiqueter les lignes à l’aide d’autres champs, vous devez créer une requête supplémentaire qui utilise la requête Totaux comme source, puis vous ajoutez les champs supplémentaires à cette requête.
Conseil : La création de requêtes par étape constitue une stratégie très efficace pour répondre à des questions plus avancées. Si vous avez des difficultés à faire fonctionner une requête complexe, envisagez si vous pouvez la décomposer en une série de requêtes plus simples.
Créer une requête Totaux
Cette procédure utilise la table exemple Events et la table exemple EventType pour répondre à cette question :
Quand est-ce que l’événement le plus récent de chaque type d’événement, à l’exception des concerts ?
-
Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.
-
Double-cliquez sur les tables Events et EventType.
Chaque table apparaît dans la partie supérieure du Concepteur de requêtes. -
Double-cliquez sur le champ EventType de la table EventType et le champ EventDate de la table Events pour ajouter les champs à la grille de création de requête.
-
Dans la grille de création de requête, dans la ligne Critères du champ EventType, entrez <>Concert.
Conseil : Pour plus d’exemples d’expressions de critères, voir l’article Exemples de critères de requête.
-
Sous l’onglet Création, dans le groupe Afficher/Masquer, cliquez sur Totaux.
-
Dans la grille de création de requête, cliquez sur la ligne Total du champ EventDate, puis sur Max.
-
Sous l’onglet Création, dans le groupe Résultats, cliquez sur Affichage, puis sur Mode SQL.
-
Dans la SQL, à la fin de la clause SELECT, juste après le mot clé AS, remplacez MaxOfEventDate par MostRecent.
-
Enregistrez la requête en tant que MostRecentEventByType.
Créer une deuxième requête pour ajouter des données
Cette procédure utilise la requête MostRecentEventByType de la procédure précédente pour répondre à cette question :
Qui était le client à l’événement le plus récent de chaque type d’événement ?
-
Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.
-
Sous l’onglet Requêtes, double-cliquez sur la requête MostRecentEventByType.
-
Sous l’onglet Tables, double-cliquez sur la table Events et la table Clients.
-
Dans le Concepteur de requêtes, double-cliquez sur les champs suivants :
-
Dans la table Events, double-cliquez sur EventType.
-
Dans la requête MostRecentEventByType, double-cliquez sur MostRecent.
-
Dans la table Clients, double-cliquez sur Société.
-
-
Dans la grille de création de requête, dans la ligne Trier de la colonne EventType, sélectionnez Croissant.
-
Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.