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 :

[A-00]ORDER BY DATE sous format MOIS/ANNEE et la fonction FORMAT()


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Points
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Par défaut [A-00]ORDER BY DATE sous format MOIS/ANNEE et la fonction FORMAT()
    Bonjour

    J'ai encore une question concernant une requette sql Sous Access 2000 en ésperant que quelqu'un puisse m'éclairer (Enfin chaque fois que j'aurais résolue un problème de date , me voila avec un autre qui réapparait .. en fait voilà ma requette est simple :

    Code SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT MID([Date Commande],4,7)
    FROM Relevé
    ORDER BY MID([Date Commande],4,7);
    j'ai comme résutat :
    Expr1000
    01/2009
    10/2006
    10/2008
    11/2006
    11/2008
    12/2008

    Alors que je m'attendais à une ordre croissant selon l'année et le mois à la fois ...Ce qui est bizzarre c'est lorsque j'essaye d'afficher aussi le jour cet ordre est bien effectué : Voici la requette

    Code sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT [Date Commande] 
    FROM Relevé
    ORDER BY [Date Commande];
    25/10/2006
    28/10/2006
    01/11/2006
    15/10/2008
    18/10/2008
    01/11/2008
    30/12/2008
    10/01/2009


    ALORS pour remedier à cela j'ai penser à utiliser la fonction format : voici ma requette


    Code sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT format(MID([Date Commande],4,7),"mm/yyyy")
    FROM Relevé
    ORDER BY format(MID([Date Commande],4,7),"mm/yyyy");

    Voici le résultat de ma requette

    Expr1000
    01/2009
    10/2006
    10/2008
    11/2006
    11/2008
    12/2008


    Alors que je m'attendais au résultat suivantordre par année d'abord puis par mois) :
    01/2009
    12/2008
    11/2008
    10/2008
    10/2006

    Alors j'ai essayé la requette suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT format(MID([Date Commande],4,7),"yyyy/mm")
    FROM Relevé
    ORDER BY format(MID([Date Commande],4,7),"yyyy/mm");
    et voici le résultat:
    Expr1
    2006/10
    2006/11
    2008/10
    2008/11
    2008/12
    2009/01

    Comme vous le voyez , j'ai bien l'ordre souhaité PAR contre moi je ne veux pas obtenir l'année/mois mais le mois/Année ...Cette requette ja vais la placer comme source de l'un de mes combobox...Jusque la tout va bien à part que j'arrive pas à affichier le bon ordre mois/Année dans mob combobox ...car ce b'est pas pratqiue au utilisateur de se perdre dans une liste pour chercher la bonne date...

    (je ne sais pourqouoi l'ordre est bon si on veux afficher mm/dd/yyyy) Mais pas mm/yyyy ...Il doit y avoir une explication .)

    Merci pour votre comprehension...et désolé pour mes questions de débutant de chez débutant de chez...

    AMICALEMENT .

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 673
    Points
    34 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 673
    Points : 34 391
    Par défaut
    salut,
    à la palce de ton MID(), tu combines plus simplement Cdate si ton champ n'est pas une date et Format + ORDER BY Format...
    Le mid est à proscrire ici, vu qu'il transforme ta date en chaine de caractères...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Format([Date Commande], "MM/YYYY")
    FROM Relevé
    ORDER BY [Date Commande];
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Points
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Par défaut
    Merci pour ta réponse

    je viens de tester ce tu m'as proposé :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT Format(cdate([Date Commande]),"mm/yyyy") AS Expr1
    FROM Relevé;
    j'ai utliser cdate meme si le type de mon champs est bien "date"

    et j'ai toujours le résultat erroné :
    Expr1
    01/2009
    10/2006
    10/2008
    11/2006
    11/2008
    12/2008

    Sinon je vais essayé de trouver un astuce pour récupérer les bonnes dates avec l'ordre année/mois et les réaficher sous le format mois/année dans mon combobox auquel j'affecte la requette SQL.

    Merci.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Points
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Par défaut
    Bonjour


    J'allais oublié ..en fait la requette avec group by :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Format(cdate([Date Commande]),"mm/yyyy") AS Expr1
    FROM Relevé
    GROUP BY Format(cdate([Date Commande]),"mm/yyyy");
    done le meme résultat précedant.

    Merci

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Points
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Par défaut
    rebonjour


    En fait j'ai testé cette requette MAIS en vainn

    liste4.RowSource = "
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     liste4.RowSource = "SELECT  Distinct mid([Date Commande],4,7) FROM relevé  order by cdate(mid([Date Commande],4,7))

    "
    Amicalement

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Points
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Par défaut
    Bonjour
    Voilà la solution si ca psut interesser quelqu'un ..j'ai du galerer une journée à cherchr ..hhhhh
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Format([Date Commande],"mm/yyyy") AS Expr1
    FROM Relevé
    GROUP BY Format([Date Commande],"mm/yyyy"),
    Format([Date Commande],"yyyy/mm")
    ORDER BY Format([Date Commande],"yyyy/mm");

    Merci
    Amicalement

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

Discussions similaires

  1. Afficher le mois d'une date sous format long
    Par merlinus3000 dans le forum Excel
    Réponses: 5
    Dernier message: 30/12/2013, 18h00
  2. Date sous format ANNEE/SEMAINE en date ANNEE/MOIS/JOUR
    Par souhail72 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 13/09/2013, 09h51
  3. [Toutes versions] date sous forme mois-année
    Par zahara81 dans le forum Access
    Réponses: 1
    Dernier message: 15/06/2011, 11h46
  4. Regrouper des dates sur jour moi annee
    Par madmaxou dans le forum SQL
    Réponses: 5
    Dernier message: 02/05/2011, 11h19
  5. Réponses: 5
    Dernier message: 20/02/2007, 18h52

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