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

Access Discussion :

Problème date regroupement requête [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Problème date regroupement requête
    Bonjour à tous,

    J'ai un problème de date avec une requête... J'ai regardé partout, testé des formats de dates mais rien n'y fait je n'y arrive pas...
    Je me suis pris la tête toute la journée pour un problème qui a l'air si bête que ça m'énerve!!
    J'ai une requête basé sur une autre requête avec plusieurs champs dont un est une date (format date, abrégé). Je veux faire un regroupement de plusieurs enregistrements identiques sauf sur le paramètre de la date et je veux conserver uniquement l’enregistrement avec la date la plus ancienne.
    Mon problème est que les résultats ne correspondent à rien, sur un enregistrement c'est cohérent mais par sur le suivant... Peut être que je m'y prend mal pour essayer de convertir en Date US ou autre... Merci de toute l'aide que vous pourrez m'apporter!

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    bonjour,

    Citation Envoyé par violaine Voir le message
    ... et je veux conserver uniquement l’enregistrement avec la date la plus ancienne!
    j'ai ça en stock : retrouver les enregistrements les plus récents par catégorie

    ça ressemble à ce que tu veux faire ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    C'est ça mais quand je fais mon Max(date) ça ne me renvoie pas les bonnes dates... Je crois qu'il doit y avoir un problème avec le format de la date mais je ne sais pas comment le modifier...
    Sur la table j'ai bien mis le format date, abrégé ainsi que sur les requêtes... Est ce que je dois faire une manip spéciale?
    Merci

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    Bonjour,

    pour avoir les dates les plus anciennes il faut un Min(Date), hein !

    Sinon peux-tu poster ta requête (copie d'écran ou code SQL) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonjour
    Voici le code sql de ma requête :
    SELECT rqt_StatsFinal.N°opérateur, rqt_StatsFinal.[Date réception1], rqt_StatsFinal.Couleur, rqt_StatsFinal.[Millésime P], Min(rqt_StatsFinal.[Date tournée]) AS [MinDeDate tournée]
    FROM rqt_StatsFinal
    GROUP BY rqt_StatsFinal.N°opérateur, rqt_StatsFinal.[Date réception1], rqt_StatsFinal.Couleur, rqt_StatsFinal.[Millésime P]
    ORDER BY rqt_StatsFinal.N°opérateur, rqt_StatsFinal.Couleur, rqt_StatsFinal.[Millésime P], Min(rqt_StatsFinal.[Date tournée]);

    La date a sélectionner est [Date tournée]
    Merci

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    si [date Tournée] est bien de type Date/Heure, il n'y a pas de raison que Min([date Tournée] ) ne retourne pas la plus petite date, soit la plus ancienne.

    C'est peut-être un problème de regroupement, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    N°Operateur    DateReception    Couleur    MillesimeP     DateTournée
       1           01/03/2012         R         1998          25/01/2013
       1           01/03/2012         R         1998          03/02/2013
       1           01/03/2012         R         1998          15/02/2013
       1           01/03/2012         R         1998          25/02/2013
    ...
    Comme tu fais un regroupement sur les 4 champs:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GROUP  BY rqt_StatsFinal.N°opérateur,
              rqt_StatsFinal.[Date réception1],
              rqt_StatsFinal.Couleur,
              rqt_StatsFinal.[Millésime P]

    Voici ce que la requête devrait retourner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    N°Operateur    DateReception    Couleur    MillesimeP     Min de DateTournée
       1           01/03/2012         R         1998          25/01/2013
    ...
    Est-ce qu'elle correspond au fonctionnel souhaité ? Sinon il faudrait donner un exemple de ce que tu souhaites.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    Cela correspond, c'est ce que j'ai fait mais j'obtiens les résultats suivants :
    06/02/2013 comme date plus vieille entre 06/02/13 et 08/02/13 donc ok
    25/05/12 entre 25/05/12, 26/01/12 et 29/06/12 donc pas bon
    08/06/11 entre 08/06/11, 22/04/11, 28/02/11 et 29/07/11 donc pas bon

    J'ai l'impression que ma requête me renvoie uniquement la première valeur qu'il trouve...

    Comment est ce que je peux faire pour corriger ce problème?

    Merci beaucoup

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    on dirait qu'Access interprète 25/05/12 comme le 12 Mai 2025 au lieu du 25 Mai 2012

    Cela arrive parfois lorsqu'on fait des requêtes sur d'autres requêtes, la date est convertie en texte.
    Peut-être qu'il faudrait remonter en amont de rqt_StatsFinal et trouver à quel moment la conversion a eu lieue, puis reconvertir en date avec CDate.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    re bonjour,

    Merci pour votre aide!
    Ma requête est bien basé sur une requête union qui est basée sur d'autres requêtes...
    Du coup j'ai fait ma sélection de la date la plus ancienne avant la requête union et du coup ça fonctionne!!!

    Merci beaucoup pour votre aide et vos réponses rapide!

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

Discussions similaires

  1. Problème avec une requête avec date
    Par WELCOMSMAIL dans le forum SQL
    Réponses: 6
    Dernier message: 29/05/2008, 14h36
  2. problème d'extraction de date dans requêtes imbriquées
    Par tomguiss dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/12/2007, 12h10
  3. Problème avec date dans requête
    Par alain94 dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2006, 08h49
  4. [Access 2003] - Problème date dans requête
    Par Leesox dans le forum Access
    Réponses: 11
    Dernier message: 14/10/2005, 09h51
  5. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 16h34

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