Fr:Utiliser la Fonction Groupe dans une Requête

From NeoWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 08:35, 17 October 2007 (edit)
Jgd (Talk | contribs)
(add redbox)
← Previous diff
Current revision (12:03, 23 May 2008) (edit) (undo)
Jgd (Talk | contribs)
(update : Utiliser la fonction CAST en mode SQL direct)
 
Line 25: 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. Il ne semble pas y avoir de moyen de faire que cette colonne affiche des dates dans une requête. Mais les nombres peuvent être "convertis" en date en créant un formulaire et en utilisant un [[Fr:Utiliser les Contrôles de Date, Heure et Autres Champs Formatés dans les Formulaires|contrôle formaté ou un contrôle de date]] pour le champ '''DatePremièreObservation'''. Cela est laissé en exercice à l'utilisateur.+#:*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

Cet article fait partie de la série de tutoriels 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 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.

[edit] Créer la requête

  1. Dans la base de données, cliquez sur l'icône Requêtes dans la colonne de gauche.
  2. Cliquez sur l'icône Créer une requête en mode Ébauche dans la section Tâches.
  3. Les fenêtres Ébauche de requête et Ajouter une table ou une requête s'ouvrent.
  4. Dans la fenêtre Ajouter une table ou une requête, cliquez sur le bouton radio Requêtes.
  5. Sélectionnez la requête Liste des observations et cliquez sur le bouton Ajouter
  6. Fermez la fenêtre Ajouter une table ou une requête.
  7. Ajustez la petite fenêtre Liste des observations afin de voir la liste complète des champs.
  8. Ajouter les champs suivants à la requête, en respectant l'ordre indiqué :
    OiseauxID
    NomOiseau
    Date
    Date (vous aurez deux colonnes avec le champ Date).
  9. 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.
  10. Dans la ligne Tri de la colonne OiseauxID, sélectionnez croissant.
  11. Dans la ligne Fonction de la première colonne intitulée Date, sélectionnez Minimum dans le menu déroulant.
  12. Dans la ligne Alias de la première colonne intitulée Date, entrez DatePremièreObservation.
  13. Dans la ligne Fonction de la seconde colonne intitulée Date, sélectionnez Nombre dans le menu déroulant.
  14. Dans la ligne Alias de la seconde colonne intitulée Date, entrez NombreObservations
  15. 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 :
    1. 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).
    2. Utiliisez la fonction CAST décrite ci-dessous
    3. 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é.
  16. Enregistrez votre requête en cliquant sur le bouton Enregistrer de la barre d'outils, ou en pressant les touches Cmd-S.
  17. Dans la fenêtre qui apparait, donnez un nom à votre requête 'ListePersonnelle
  18. Cliquez sur OK

[edit] 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.

  1. 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
  2. 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.
  3. 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 !
  4. Cliquez sur le bouton Exécuter la requête de la barre d'outils pour tester la requête.
  5. Vous pouvez maintenant fermer la requête.

[edit] 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.


Cet article dans d'autres langues : English
Personal tools