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 :

[Demande explication] COndition requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut [Demande explication] COndition requete
    Bonjour dans une appli Access j'ai une requete de ce type (ce n'est pas moi qui est dev. l'appli.).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT graphe_donnees_date.dates, Sum([kilometre]) AS somme_k, Sum([voyage]) AS somme_v
    FROM donnees, graphe_donnees_date
    WHERE (donnees.dates Between graphe_donnees_date.dates And ("01/" & Month(graphe_donnees_date.dates)+1 & "/" & Year(graphe_donnees_date.dates)-1) and voyage is not null)
    GROUP BY graphe_donnees_date.dates;
    J'aimerai savoir à quoi correspond cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (donnees.dates Between graphe_donnees_date.dates And ("01/" & Month(graphe_donnees_date.dates)+1 & "/" & Year(graphe_donnees_date.dates)-1) and voyage is not null)
    Car cette requete permet de récupérer des valeurs afin de créer un graphique, et tout les ans les stats sont faux pour tout les mois de décembre.

    Merci

    ..::Garsducalvados::..

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    les 11 mois précédents

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    Tout à fait normal que ce soit faux en décembre.

    Month(graphe_donnees_date.dates)+1

    Month() renvoi le n° du mois.
    Donc 12 + 1 = 13

    le mois 13 n'existe pas.

    Cordialement,

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Il faudrait donc que j'enlève le +1??
    Mais alors je me demande Pourquoi a t il mis un +1?

    Merci à vous pour vos réponse rapide.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Il a mis +1 pour prendre le mois complet. Mais arrivé en décembre la condition évaluée est fausse.

    Le gugusse qui a fait cette appli l'a un peu baclée...

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Le gugusse qui a fait cette appli l'a un peu baclée...
    Je pense aussi.

    çe m'embete grave j'ai vraiment du mal à trouver une solution. Mais je vais trouver.
    Merci à toi
    @+

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Regarde la fonction DateAdd() dans l'aide. Elle te permet de conserver la cohérence lors de l'ajout de jour/mois/année.

    Cordialement,

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Effectivement je viens d'afficher les dates "comparatives" et incrémentés et à partir du mois de décembre, il calcul du 01/12/06 au 01/13/06.Voici une nouvelle question :
    En effet la requete est bonne pour tout les autres mois.
    Mais puis je faire une condition de type :

    si (month(date)==12) alors
    month(date)=01;
    year(date)=year(date)+1;
    fin si

    dans ma requete SQL.
    Merci

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Regarde plutot la fonction que je t'ai donné. Elle te fait cela en une passe.

    Ce sera plus simple que de vouloir réinventer la roue.

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Excuse j'ai posté mon message en meme temps que toi pratiquement je ne l'avais donc pas lu. Merci je regarde.

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Comment dois je faire pour manipuler la date avec dateadd :
    sachant que je veux que le mois soit +1 et que l'année soit -1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("01/" & Month(graphe_donnees_date.dates)+1 & "/" & Year(graphe_donnees_date.dates)-1)
    j'ai vu que l'on pouvait ajouter +1 au mois :
    DATEADD (m, 1,graphe_donnees_date.dates)

    Mais je veux aussi que l'année soit à -1.

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    J'arrive à faire passer le mois à 01 quand il est égale à 12 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ("01/" & month(dateadd("m",1,[graphe_donnees_date].[dates])) & "/" & Year(dateadd("y",-1,[graphe_donnees_date].[dates])))
    Mais le fait de séparé le traitement dateadd sur le mois et l'année engendre une erreur en effet lorsque le 12 passe à 01 pour le mois. Le -1 de l'année reste à -1.
    Exemple :
    01/12/06 ==> 01/01/05 (Alors que celà devrait etre 01/01/06).

  13. #13
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Je l'ai remplacè par ça j'ai la meme chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DateAdd("y",-1,[graphe_donnees_date].[dates])

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Attention dans ce cas tu enlève 1 an à Dates. Si Dates est égal à 1/11/2006 tu auras 1/11/2005. Ce n'est peut être pas ce que tu souhaite ?

    Travaille plutot par mois. Dateadd("m";1;graphe_données.Dates) tu ajoute 1 mois à Dates. Avec le Between tu prends donc de Dates à Dates + 1 mois.

  15. #15
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Oui mais c'est normal que j'enleve 1 ans à date car je souhaite faire des stats sur 12 mois glissant donc de N(2006) à N-1(2005).
    Et donc lorsque j'arrive à 01/12/06 au lieu de me mettre 01/01/06 il me met 01/01/05....

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Cette requête ne serait pas stocker dans VBA par hasard ?

  17. #17
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Non tout dans le "groupe" requete.

  18. #18
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graphe_donnees_date.dates  and dateserial(year(graphe_donnees_date.dates  ),month(graphe_donnees_date.dates )-11,1)

  19. #19
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    oups ! mea culpa

    La syntaxe pour enlever 1 année c'est celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entre AjDate("aaaa";-1;[dates]) Et [dates]
    Note le "aaaa" est différent.

    ça devrait enfin fonctionner.

  20. #20
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    ça correspond à quoi exactement :
    à ma date n-1
    sachant qu'en plus il faut que j'incrémente le mois +1.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ORACLE 8i]Explication de requetes
    Par bloody22 dans le forum Oracle
    Réponses: 1
    Dernier message: 25/08/2006, 16h34
  2. Getelementbyid : Demande explication :D
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 16h15
  3. Demande explication sur un composant ADO
    Par Golork dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/07/2005, 20h22
  4. [AWT] Demande Explications prog calculatrice
    Par smag dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2005, 16h06
  5. explication syntaxe requete sur pgsql
    Par alain.lc dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/12/2004, 10h24

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