Sommaire
- Tri croissant/décroissant sur une seule colonne
- Tri croissant sur plusieurs colonnes
- Tri décroissant
- Premières valeurs
- Premières valeurs : Doublons possibles
- Premières valeurs : Utilisation d'un pourcentage
Nous allons voir dans cette leçon qu'il possible de mémoriser les tris avec la requête.
Tri croissant/décroissant sur une seule colonne
Revenez ou restez en mode création de cette requête. Cliquez dans la zone Tri de Domaine :- Croissant (Tri alphabétique de A à Z, ou s'il s'agit d'un champ numérique, du plus petit au plus grand. En cas de dates de la plus ancienne à la plus récente)
- Décroissant (Tri alphabétique de Z à A, ou s'il s'agit d'un champ numérique du plus grand au plus petit. En cas de dates, de la plus récente à la plus ancienne)
- (Non trié) (Dans ce cas, autant ne rien mettre... C'est pareil !)
Une fois de plus, nous constatons quelques erreurs de saisie : Pourquoi atrribuer ?? ou ??? à des gens dont le domaine est inconnu... Autant le laisser en blanc ! Ne changez rien : Laissons volontairement ces "erreurs de saisie" (Nous verrons à la leçon 45 comment bien nettoyer toutes ces erreurs)
Astuce : Plutôt que de cliquer sur la petite flèche
Cette première colonne est bien triée, mais pas les autres...
Exactement.C'est normal : Je comprend bien que si on trie par le pays d'origine, forcément, le domaine ne sera plus trié. On ne peut trier qu'une colonne à la fois !
Tri croissant sur plusieurs colonnes
Justement, non ! Nous allons pouvoir trier par plusieurs colonnes en même temps.Démonstration : Demandez le tri alphabétique EGALEMENT sur PaysOrigine :
Et à chaque changement de domaine, le tri recommence de A à Z sur le pays !
Oui. Et nous allons continuer : Prenons les "Chanson" de France :
Compris ! Il suffit de définir le tri croissant dans l'EtatCivil
!
Tri décroissant
C'est ça ! Tiens, on va même faire une petite variante puisque vous avez bien compris : Ne choisissez pas Croissant, mais Décroissant :Et maintenant, si je veux que tous les "Chanson", "France", "Marié(e)" soient triés par ordre alphabétique par le nom, je demande un tri croissant du prénom et du nom ?
Pas du prénom. Vous demandez juste l'ordre alphabétique du nom, autrement il va d'abord définir le prénom par ordre alphabétique, et ensuite les noms, ce qui est idiot.Faites donc :
Enregistrez cette requête sous R_CelebriteMultiCleDeTri, avec la description Tri par Domaine, Pays, EtatCivil et NomClient
C'est toujours un tri de gauche à droite ?
Toujours, sans exceptionDonc, si j'intervertis les 2 premières colonnes, que je place le pays en premier lieu tout à gauche, et juste à sa droite le domaine, il va trier d'abord les pays, et pour un même pays, il va trier les domaines ?
Oui. Faites le test : Restez dans cette requête, et déplacez le Pays de manière à ce que ce soit la première colonne (Revoyez la leçon 21 si vous avez oublié comment on déplace un champ). Une fois que vous avez cette disposition :Faites Fichiers/Enregistrer SOUS : R_CelebriteMultiCleDeTri2 avec la description "Tri par Pays, Domaine, EtatCivil et NomClient"
On aurait pu encore affiner notre tri, si on avait mis le nom avant le prénom, on aurait pu trier par vraiment toutes les colonnes :
, comme ça, si par exemple, on avait eu plusieurs fois le même nom de famille, la requête les aurait trié par ordre alphabétique des prénoms (Dupont André, Dupont Charles, Dupont Ernest, ...)
Oui. Nous ne l'avons pas fait, parce que dans notre cas ç'aurait été un peu idiot, nous n'avons absolument pas assez de données pour que ce soit représentatif (A part Hallyday qui est représenté 2 fois (Johnny et David), il n'y a pas vraiment d'autres exemples dans notre table).Premières valeurs
Nous allons maintenant nous pencher sur une intéressante fonction des requêtes, plus ou moins liée aus tris : C'est la fonction "Première valeurs". Créez une nouvelle requête, comme d'habitude, avec les champs Nom, Prénom et SalaireMensuel. Demandez le tri décroissant par salaireMensuel seulement :Admettons maintenant que vous désiriez afficher seulement les 5 personnes les plus riches de votre table : Cliquez sur cette petite déroulante, dans la barre d'outils, au dessus de votre écran, sous les menus :
Enregistrez cette requête sous R_Celebrite5LesPlusRiche (Ne quittez pas cette requête)
Je suppose qu'on est pas obligé de choisir ce qui existe dans la liste (5, 25, 100), on peut écrire un autre chiffre ?
Bien sûr, oui.Donc, si je met 1, j'ai juste la personne la plus riche ?
Premières valeurs : Doublons possibles
Oui. Essayez : Ecrivez 1 dans cette listeFaites Fichier/Enregistrer Sous : R_CelebriteLaPlusRiche
Ca ne marche pas : Il me renvoie 2 personnes :
!
Mais ils gagnent tous les deux 30'000 francs ! S'il n'en avait choisi qu'un çaurait été qui ? Stallone ou Sirven ?C'est juste ! Dans ce cas, qu'on demande 1 ou 2, le résultat est le même ?
Oui. Parce qu'Access ne veut pas vous renvoyer au hasard l'un des deux. PAR CONTRE... Si vous aviez :Faites Fichier/Enregistrer Sous : R_CelebriteLaPlusRicheAlphabetique. Fermez cette requête, et mettez les descriptions suivantes dans ces 3 nouvelles requêtes :
Premières valeurs : Utilisation d'un pourcentage
J'ai vu que dans la liste déroulante des premières valeurs, on pouvait également indiqur un pourcentage ?
C'est le même principe. Admettons que vous aimeriez voir les 10% des personnes les plus agées de votre liste, créez une nouvelle requête comme d'habitude, et demandez :Ca ne marche pas : Déjà, il devrait y avoir 10 personnes (10% de 100 personnes), là, il y en a 14... Et en plus, personne n'a de date de naissance !
Tout est normal : 14 personnes, c'est justement parce qu'il y a 14 personnes dont la date est inconnue, et comme c'est trié par ordre croissant de date de naissance, les dates vides sont placées en premier. En fait, il faudrait exclure les dates vides. Vous vous rappelez comment faire ?Bien sûr ! je me rappelle de la leçon 25 : Il faut mettre Pas Null comme critère de DateNaissance !
Exactement. Essayez !Enregistrez cette requête sous R_Celebrite10PourCentLesPlusAgee. Donnez lui la desccription : DateNaissance : Ordre décroissant, Premières valeurs : 10%
C'est marrant : Il ne donne que 9 personnes... Comme nous avons 100 personnes, il devrait en donner au moins 10, non ?
Attention : Vous avez demandé la liste de toutes les personnes dont la date de naissance n'était pas nulle ! Il n'y a donc plus 100 personnes, mais 100 - 14 personnes sans dates = 86 personnes (on a vu un peu plus haut dans la leçon qu'il y avait 14 personnes sans date de naissance). 10% de 86 personnes, c'est 8.6 personnes. Comme il n'est pas possible évidemment d'afficher 8.6 personnes, Access en affiche 9.Bon finalement, ces premières valeurs ne sont absolument pas utiles s'il n'y a pas de tri sur au moins une colonne !
Exactement.
Bon... Hem... On peut résumer ?
| Les requêtes servent à extraire une partie des données d'une table, mais également à trier. Il est possible de trier sur un, deux ou plus de champs... Les tris s'effectuent toujours de gauche à droite : C'est d'abord la colonne la plus à gauche qui est triée, ensuite, vers la droite. Si la première colonne est Pays, et la deuxième est NomClient, Access va trier tous les pays par ordre alphabétique, et pour tous les habitants d'un même pays, ils seront alors triés par ordre alphabétique du nom. Le tri est étroitement lié avec la notion de Premières Valeurs. Il est possible d'extraire les 12 personnes les plus jeunes, ou les 27% des gens dont le salaire est le plus élevé, en utilisant la liste déroulante "Premièeres valeurs". En cas d'égalité, Access affiche les 2 ou plusieurs enregistrements comme s'il n'en s'agissait que d'un seul. |
Avez-vous bien compris ?
|
Exercice
Encore une fois, il ne s'agit pas de créer une nouvelle base de données, mais vous allez devoir créer quelques requêtes dans votre base de données ProFormation. Toutes les requêtes seront basées sur T_Celebrite, et devront contenir au minimum le Prénom et le NomClient.
|
0 commentaires:
Enregistrer un commentaire