IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Problème avec récupération du mois


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut Problème avec récupération du mois
    bonjour,
    Dans une requête je traduis la date en mois avec la fonction année([date]) et cela sans problème et j'appelle le nouveau champ Mois
    Sur une autre champ je cherche à connaître le nombre de mois dans l'année ou il n'a pas plu (pluviométrie =0)
    j'utilise pour cela la fonction CpteDom qui fonctionne très bien dans ma requête pour d'autres comptages

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CpteDom("mois";"tbdonnees";"[rainfall]=0 and [data_]>= #01/01/2020#")
    rainfail correspond à la quantité d'eau tombée par jour

    Le problème vient que la requête ne reconnait pas le champ Mois, message d'erreur Microsoft ne parvient pas à trouver le champ mois
    (j'ai essayé entre crochet cela ne fonctionne pas plus)
    Ou peut se trouver mon erreur
    merci

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    En réalité le champ qui fait problème est data_
    D'où sort-il? peut tu nous présenter la structure de ta table tbdonnees ?

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 811
    Points : 14 895
    Points
    14 895
    Par défaut
    bonsoir,
    Le problème vient que la requête ne reconnait pas le champ Mois, message d'erreur Microsoft ne parvient pas à trouver le champ mois
    (j'ai essayé entre crochet cela ne fonctionne pas plus)
    il faut que tu montres le code SQL de ta requête, sans cela on ne pourra pas t'aider

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut
    Bonjour,
    le champ data_ provient d'un fichier cvs issu de l'enregistrement des données MTO de ma station.
    Initialement le nom du champ est DATA, mais pensant qu'il existait un risque avec un mot réservé dans access, j'ai rajouté un "_"

    le code SQL de la requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Sum(tbdonnees.rainfall) AS SommeDerainfall, Month([data_]) AS mois, Year([data_]) AS Année, DCount("mois","tbdonnees","[rainfall]=0 and [data_]>= #01/01/2020#") AS Mois1
    FROM tbdonnees
    GROUP BY Month([data_]), Year([data_]), DCount("mois","tbdonnees","[rainfall]=0 and [data_]>= #01/01/2020#");
    pour la structure de la table tbdonnées, tous les champs sont numériques (sauf la date)
    merci

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 811
    Points : 14 895
    Points
    14 895
    Par défaut
    bonsoir,
    le code SQL de la requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("mois","tbdonnees","[rainfall]=0 and [data_]>= #01/01/2020#")
    dans une fonction de domaine tu ne peux pas utiliser un champ créé ("mois") dans une requête en cours.
    Il faut d'abord créer une première requête de regroupement puis l'utiliser dans une seconde requête (on pourrait aussi créer une sous-requête plus conforme à la norme SQL mais nous allons rester dans le standard Access).
    1) sauvegarde de la requête en la nommant rqPluviometrieparAnMois, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Sum(tbdonnees.rainfall) AS SommeDerainfall, Month([data_]) AS mois, Year([data_]) AS Annee
    FROM tbdonnees
    WHERE [data_]>= #01/01/2020#)
    GROUP BY Month([data_]), Year([data_]);
    2) utilisation de la requête nommée dans une fonction de domaine dans une seconde requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Sum(tbdonnees.rainfall) AS SommeDerainfall, Month([data_]) AS mois, Year([data_]) AS Annee, DCount("mois","rqPluviometrieparAnMois","[SommeDerainfall]=0 and Mois=" & Month([data_]) & " and Annee =" & Year([data_])) AS Mois1
    WHERE [data_]>= #01/01/2020#
    GROUP BY Month([data_]), Year([data_]);
    il faut t'interroger sur la pertinence de mettre where [data_]>= #01/01/2020# directement dans les requêtes car cela ne va fonctionner qu'un temps donné

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut
    merci pour ta réponse, effectivement en continuant à chercher une solution je me suis rendu compte qu'il fallait que je crée une nouvelle requête à partir de la première
    C'est ce que j'ai fait, Cela fonctionne et pour la date j'ai une solution pour la passer en paramètre
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec récupération utilisateur
    Par kidmig dans le forum MkFramework
    Réponses: 5
    Dernier message: 29/12/2017, 21h19
  2. Problème avec récupération des préférences
    Par Xenonmax dans le forum Android
    Réponses: 5
    Dernier message: 19/12/2011, 14h05
  3. [EXCEL] problème avec récupération automatique
    Par pegase33 dans le forum Excel
    Réponses: 2
    Dernier message: 20/11/2011, 11h53
  4. [EXCEL] problème avec récupération automatique
    Par Moheva dans le forum Excel
    Réponses: 2
    Dernier message: 27/07/2006, 09h11
  5. Réponses: 6
    Dernier message: 07/07/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo