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 :

Requête 12 mois glissants - Access 97


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut Requête 12 mois glissants - Access 97
    Bonjour à tous,

    Je dispose d'une table me permettant de rentrer les consultations mensuelles de ressources. Elle est composée de trois champs :
    IdRes (identification d'une ressource)
    Mois (en fait le premier jour de chaque mois sous la forme 01/mm/aaaa)
    Consultations (le nombre de consultations).
    La requête que je souhaiterais faire devrait être utilisée afin de représenter graphiquement l'évolution du nombre de consultations mensuelles de ressources numériques au cours des 12 derniers mois.
    On m'a déjà conseillé la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TConsultations.IdRes, TConsultations.Mois, Sum(TConsultations.Consultations) AS Consultations
    FROM TConsultations
    WHERE (((Format([Mois],"mmdd")>Format(Date(),"mmdd"))=-1))
    GROUP BY TConsultations.IdRes, TConsultations.Mois;
    Or elle pose problème. En effet nous sommes en 03/2007 et donc ma requête va chercher tous les mois dont le quantième est strictement supérieur à 3, donc à partir de 04/2006 jusqu'au 12/2006, mais ne ramène pas la période du 01/2007 au 02/2007. Par ailleurs, si on se situe en 03/2008, elle remontera les résultats sur 04/2006-12/2006 mais aussi sur 04/2007-12/2007.

    Comment faire alors ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    tu devrais mieux t'en sortir avec la fonction DateDiff :

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut
    Bonjour Arkham46,

    Cette fonction existe-t-elle pour Access 97 ? Je ne l'ai pas trouvée dans l'aide. Par ailleurs, ce serait alors du VBA. N'est-il pas possible de faire ça uniquement en SQL ?

    Merci d'avance

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    La fonction existe en access 97 et elle est utilisable dans le sql.

  5. #5
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    Si tu mets DateDiff en SQL ça devrait marcher.
    Pour l'aide, peut-être faut-il chercher avec le nom français de la fonction (DiffDate je crois)

    en tout cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff ("m",[Mois],Date())
    devrait te donner le nombre de mois écoulés

  6. #6
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Citation Envoyé par Arkham46
    bjr,

    Si tu mets DateDiff en SQL ça devrait marcher.
    Pour l'aide, peut-être faut-il chercher avec le nom français de la fonction (DiffDate je crois)
    Non, non c'est bien DateDiff

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut
    OK ! Merci à tous
    Un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((DateDiff("d",[Mois],Date())<=365)=-1))
    Et tout marche comme prévu

  8. #8
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par Catalaburro
    OK ! Merci à tous
    Un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((DateDiff("d",[Mois],Date())<=365)=-1))
    Et tout marche comme prévu
    Attention si tu travailles en jours, une année bisextile, c'est 366 jours...
    Est-ce que ça marchera? Il risque de manquer un mois.
    Mieux vaut travailler en mois non? DateDiff fonctionne très bien avec des mois.

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

Discussions similaires

  1. [SQL 2008] Requête : Cumul sur 12 mois glissants
    Par mad_martigan dans le forum Développement
    Réponses: 4
    Dernier message: 23/12/2010, 17h35
  2. Requête sur 12 mois glissant
    Par sandrasemise dans le forum Webi
    Réponses: 5
    Dernier message: 17/08/2010, 15h42
  3. Requête date mois+1
    Par SERVIROC dans le forum Langage SQL
    Réponses: 11
    Dernier message: 27/04/2010, 17h40
  4. Requête 6 mois glissants depuis aujourd'hui
    Par guilld dans le forum Développement
    Réponses: 3
    Dernier message: 27/01/2009, 12h58
  5. Comment grouper une requête par mois ?
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/06/2005, 12h01

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