|
Fr:Utiliser la Fonction Groupe dans une Requête
From NeoWiki
Revision as of 11:51, 15 October 2007 (edit) Jgd (Talk | contribs) (translation of the English article "Using the Group Function in a Query") ← Previous diff |
Current revision (12:03, 23 May 2008) (edit) (undo) Jgd (Talk | contribs) (update : Utiliser la fonction CAST en mode SQL direct) |
||
(One intermediate revision not shown.) | |||
Line 1: | Line 1: | ||
+ | {{redbox|Cet article fait partie de la série de tutoriels [[Fr:Base Aller et Retour|Base Aller et Retour]].}} | ||
+ | |||
Les ornithologues passionnés tiennent une liste personnelle. Une liste personnelle est une liste des oiseaux que l'ornithologue a identifiés. Pour être un outil approprié pour les ornithologues, notre base de données doit inclure un moyen de créer une telle liste. Nous avons fait un pas dans cette direction lorsque nous avons créé la requête [[Fr:Utiliser une Requête pour Combiner des Champs de Différentes Tables| Utiliser une Requête pour Combiner des Champs de Différentes Tables]]. Si vous avez entré les données fournies dans l'article [[Fr:Créer un Formulaire avec un Sous-formulaire|Créer un Formulaire avec un Sous-formulaire]], vous aurez remarqué que certaines espèces d'oiseaux (par ex. le Tufted Timouse) apparaissent deux fois dans cette liste. Pour un ornithologue sérieux qui fait régulièrement des sorties d'observation, le nombre des entrées pour chaque espèce serait rapidement plus élevé. Nous devons construire une requête qui répertoriera chaque espèce une fois seulement. | Les ornithologues passionnés tiennent une liste personnelle. Une liste personnelle est une liste des oiseaux que l'ornithologue a identifiés. Pour être un outil approprié pour les ornithologues, notre base de données doit inclure un moyen de créer une telle liste. Nous avons fait un pas dans cette direction lorsque nous avons créé la requête [[Fr:Utiliser une Requête pour Combiner des Champs de Différentes Tables| Utiliser une Requête pour Combiner des Champs de Différentes Tables]]. Si vous avez entré les données fournies dans l'article [[Fr:Créer un Formulaire avec un Sous-formulaire|Créer un Formulaire avec un Sous-formulaire]], vous aurez remarqué que certaines espèces d'oiseaux (par ex. le Tufted Timouse) apparaissent deux fois dans cette liste. Pour un ornithologue sérieux qui fait régulièrement des sorties d'observation, le nombre des entrées pour chaque espèce serait rapidement plus élevé. Nous devons construire une requête qui répertoriera chaque espèce une fois seulement. | ||
Line 23: | Line 25: | ||
#Cliquez sur le bouton {{Button|Exécuter la requête}} de la barre d'outils. (Il représente une source de base de données avec une flèche verte pointant vers le bas). Au bout d'un moment, vous devriez voir les résultats de la requête. | #Cliquez sur le bouton {{Button|Exécuter la requête}} de la barre d'outils. (Il représente une source de base de données avec une flèche verte pointant vers le bas). Au bout d'un moment, vous devriez voir les résultats de la requête. | ||
#:*Les lignes seront triées selon l'ordre de la liste '''OiseauxID''', et il n'y aura qu'une seule entrée pour chaque sorte d'oiseau. | #:*Les lignes seront triées selon l'ordre de la liste '''OiseauxID''', et il n'y aura qu'une seule entrée pour chaque sorte d'oiseau. | ||
- | #:*Notez que la colonne '''DatePremièreObservation''' contient des entiers, non des dates. | + | #:*Notez que la colonne '''DatePremièreObservation''' contient des entiers, non des dates. Vous avez trois possibilités pour remédier à ce problème : |
+ | #:#Faites un clic droit ou Ctrl-clic sur la colonne '''DatePremièreObservation''' de la requête et choisissez {{Menu|Formatage de colonne...}} dans le menu contextuel. Réglez la {{Section|Categorie}} sur {{prefName|Date}} et choisissez le {{Section|Format}} désiré. Cliquez sur {{Button|OK}}. (Cela fonctionne même si la requête n'a pas été ouverte en mode édition). | ||
+ | #:#Utiliisez la fonction CAST décrite [[#Utiliser Cast en mode SQL direct|ci-dessous]] | ||
+ | #:#Corrigez le problème dans les seuls formulaires qui utilisent la requête en insérant un [[Using Date Time and Formatted Controls in Forms|contrôle formaté]] pour le champ '''DatePremièreObservation'''. Cela est laissé en exercice à l'utilisateur. | ||
#:*La colonne '''NombreObservations''' indique le nombre de fois où un oiseau donné a été identifié. | #:*La colonne '''NombreObservations''' indique le nombre de fois où un oiseau donné a été identifié. | ||
#Enregistrez votre requête en cliquant sur le bouton {{button| Enregistrer}} de la barre d'outils, ou en pressant les touches {{key|Cmd-S}}. | #Enregistrez votre requête en cliquant sur le bouton {{button| Enregistrer}} de la barre d'outils, ou en pressant les touches {{key|Cmd-S}}. | ||
#Dans la fenêtre qui apparait, donnez un nom à votre requête '''ListePersonnelle'' | #Dans la fenêtre qui apparait, donnez un nom à votre requête '''ListePersonnelle'' | ||
#Cliquez sur {{Button|OK}} | #Cliquez sur {{Button|OK}} | ||
+ | |||
+ | ==Utiliser CAST en mode SQL direct== | ||
+ | La fonction CAST vous permet de "convertir" un champ d'un type à un autre. Dans notre exemple, nous voulons CAST un entier (le résultat MIN(DATE) ) en une date. Mais cette fonction peut aussi CAST un champ numérique en texte, etc. Malheureusement, cette fonction ne peut pas être utilisée en mode ébauche (le mode dans lequel vous voyez des colonnes pour chaque champ et des lignes pour Alias, Table, Critère, etc.). CAST ne peut être utilisé qu'en mode SQL , et spécialement en mode SQL direct. '''Les requêtes utilisant le mode SQL direct ne peuvent pas être vues en mode ébauche.''' | ||
+ | |||
+ | #La requête construite ci-dessus étant toujours ouverte en mode ébauche, cliquez sur le bouton {{Button|(Dés)activer le mode Ébauche}} | ||
+ | #: La fenêtre passe en mode SQL et vous verrez plusieurs lignes de code SQL qui ressemble à ceci : | ||
+ | #:{{preBox|<nowiki>SELECT "OiseauxID", "NomOiseau", MIN( "Date" ) AS "DatePremièreObservation", COUNT( "Date" ) AS "NombreObservations" FROM "Liste des Observations" GROUP BY "OiseauxID", "NomOiseau" ORDER BY "OiseauxID" ASC</nowiki>}} | ||
+ | #Cliquez sur le bouton {{Button|Exécuter directement l'instruction SQL}} de la barre d'outils. Il représente l'icône d'une source de données avec une flèche verte dirigée vers le bas. | ||
+ | #Touvez le champ MIN("Field_Trips"."Date) and edit it to read: | ||
+ | #:{{preBox|<nowiki>CAST(MIN("Date") AS DATE)</nowiki>}} | ||
+ | #:'''Ne changez rien d'autre dans la requête si vous ne connaissez pas le language SQL !''' | ||
+ | #Cliquez sur le bouton {{Button|Exécuter la requête}} de la barre d'outils pour tester la requête. | ||
+ | #Vous pouvez maintenant fermer la requête. | ||
==Notes== | ==Notes== |
Current revision
Les ornithologues passionnés tiennent une liste personnelle. Une liste personnelle est une liste des oiseaux que l'ornithologue a identifiés. Pour être un outil approprié pour les ornithologues, notre base de données doit inclure un moyen de créer une telle liste. Nous avons fait un pas dans cette direction lorsque nous avons créé la requête Utiliser une Requête pour Combiner des Champs de Différentes Tables. Si vous avez entré les données fournies dans l'article Créer un Formulaire avec un Sous-formulaire, vous aurez remarqué que certaines espèces d'oiseaux (par ex. le Tufted Timouse) apparaissent deux fois dans cette liste. Pour un ornithologue sérieux qui fait régulièrement des sorties d'observation, le nombre des entrées pour chaque espèce serait rapidement plus élevé. Nous devons construire une requête qui répertoriera chaque espèce une fois seulement.
Créer la requête
- Dans la base de données, cliquez sur l'icône Requêtes dans la colonne de gauche.
- Cliquez sur l'icône Créer une requête en mode Ébauche dans la section Tâches.
- Les fenêtres Ébauche de requête et Ajouter une table ou une requête s'ouvrent.
- Dans la fenêtre Ajouter une table ou une requête, cliquez sur le bouton radio Requêtes.
- Sélectionnez la requête Liste des observations et cliquez sur le bouton Ajouter
- Fermez la fenêtre Ajouter une table ou une requête.
- Ajustez la petite fenêtre Liste des observations afin de voir la liste complète des champs.
- Ajouter les champs suivants à la requête, en respectant l'ordre indiqué :
- OiseauxID
- NomOiseau
- Date
- Date (vous aurez deux colonnes avec le champ Date).
- Dans la ligne Fonction des colonnes OiseauxID et NomOiseau, sélectionnez Groupe dans le menu déroulant. Il faut cliquer dans la cellule pour faire apparaitre le menu déroulant.
- Dans la ligne Tri de la colonne OiseauxID, sélectionnez croissant.
- Dans la ligne Fonction de la première colonne intitulée Date, sélectionnez Minimum dans le menu déroulant.
- Dans la ligne Alias de la première colonne intitulée Date, entrez DatePremièreObservation.
- Dans la ligne Fonction de la seconde colonne intitulée Date, sélectionnez Nombre dans le menu déroulant.
- Dans la ligne Alias de la seconde colonne intitulée Date, entrez NombreObservations
- Cliquez sur le bouton Exécuter la requête de la barre d'outils. (Il représente une source de base de données avec une flèche verte pointant vers le bas). Au bout d'un moment, vous devriez voir les résultats de la requête.
- Les lignes seront triées selon l'ordre de la liste OiseauxID, et il n'y aura qu'une seule entrée pour chaque sorte d'oiseau.
- Notez que la colonne DatePremièreObservation contient des entiers, non des dates. Vous avez trois possibilités pour remédier à ce problème :
- Faites un clic droit ou Ctrl-clic sur la colonne DatePremièreObservation de la requête et choisissez Formatage de colonne... dans le menu contextuel. Réglez la Categorie sur Date et choisissez le Format désiré. Cliquez sur OK. (Cela fonctionne même si la requête n'a pas été ouverte en mode édition).
- Utiliisez la fonction CAST décrite ci-dessous
- Corrigez le problème dans les seuls formulaires qui utilisent la requête en insérant un contrôle formaté pour le champ DatePremièreObservation. Cela est laissé en exercice à l'utilisateur.
- La colonne NombreObservations indique le nombre de fois où un oiseau donné a été identifié.
- Enregistrez votre requête en cliquant sur le bouton Enregistrer de la barre d'outils, ou en pressant les touches Cmd-S.
- Dans la fenêtre qui apparait, donnez un nom à votre requête 'ListePersonnelle
- Cliquez sur OK
Utiliser CAST en mode SQL direct
La fonction CAST vous permet de "convertir" un champ d'un type à un autre. Dans notre exemple, nous voulons CAST un entier (le résultat MIN(DATE) ) en une date. Mais cette fonction peut aussi CAST un champ numérique en texte, etc. Malheureusement, cette fonction ne peut pas être utilisée en mode ébauche (le mode dans lequel vous voyez des colonnes pour chaque champ et des lignes pour Alias, Table, Critère, etc.). CAST ne peut être utilisé qu'en mode SQL , et spécialement en mode SQL direct. Les requêtes utilisant le mode SQL direct ne peuvent pas être vues en mode ébauche.
- La requête construite ci-dessus étant toujours ouverte en mode ébauche, cliquez sur le bouton (Dés)activer le mode Ébauche
- La fenêtre passe en mode SQL et vous verrez plusieurs lignes de code SQL qui ressemble à ceci :
- SELECT "OiseauxID", "NomOiseau", MIN( "Date" ) AS "DatePremièreObservation", COUNT( "Date" ) AS "NombreObservations" FROM "Liste des Observations" GROUP BY "OiseauxID", "NomOiseau" ORDER BY "OiseauxID" ASC
- Cliquez sur le bouton Exécuter directement l'instruction SQL de la barre d'outils. Il représente l'icône d'une source de données avec une flèche verte dirigée vers le bas.
- Touvez le champ MIN("Field_Trips"."Date) and edit it to read:
- CAST(MIN("Date") AS DATE)
- Ne changez rien d'autre dans la requête si vous ne connaissez pas le language SQL !
- Cliquez sur le bouton Exécuter la requête de la barre d'outils pour tester la requête.
- Vous pouvez maintenant fermer la requête.
Notes
- Les fonctions Maximum, Moyenne, et Somme agissent de façon semblable. Elles exigent toutes que vous groupiez vos données au préalable, comme nous l'avons fait ici.
- Vous ne pouvez pas ajouter des champs à une telle requête si aucune fonction ne leur est assignée.