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 :

Ordre alphabétique dans une requête qui calcule les E/S par mois [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut Ordre alphabétique dans une requête qui calcule les E/S par mois
    Bonjour,

    Après quelques mois, dans cette discussion : http://www.developpez.net/forums/d10...iche-resultat/
    j'ai constaté que dans l'affichage de mon formulaire j'ai un ordre alphabétique par mois malgré je n'ai pas mis un filtre.
    Voila une image pour être clair :


    Donc comment faire pour laisser l'ordre par défaut ?
    Good luck and never give up

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    Rien n'empeche d'avoir un autre champ nMois, cette fois-ci numérique, trié par ordre croissant et qui peut être invisible sur le formulaire, afin de rétablir le bon ordre

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    J'ajoute un champ nMois! je l'ajoute dans la table ou dans ma requête? j'ai pas bien saisi le truc.
    Good luck and never give up

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    bonsoir,
    la date sous format texte est difficilement triable et une date en format numerique est facilement triable.
    nMois peut être sous format date sachant qu'une date est un numerique double. la partie entiere represente le jour, le mois et l'année depuis 1900 et la partie décimale les heures, minutes et secondes. le tri sur un double sera forcement croissant sans erreur.
    Ce champ peut être dans la table mais alors il faut le renseigner.
    Il peut être dans la requête et construit à partir d'un champ date déjà existant.
    Le champ Mois est-il un champ texte ou la représentation d'une date formatée ?
    Si c'est simplement un champ texte, il faudrait prévoir plutôt de renseigner une date qui serait formaté ensuite pour donner le même résultat.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Je pense que je l'ajoute dans la requête mais je trouve pas la solution pour l'ajouter.
    Le champ Mois est un champ formaté, ben voila la requête :

    Good luck and never give up

  6. #6
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    Impossible de voir la requête.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Tu clique sur l'image elle s'ouvre sur une autre page, ensuite tu clique une deuxième fois dessus, comme ça tu peu la voir, sinon
    Voila la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Format([DteOperation],"mmmm-yyyy") AS Mois, Sum(nz([Input],0)) AS Entrees, Sum(Nz([Output],0)) AS Sorties, Sum(nz([Input],0)+nz([Output],0)) AS Total
    FROM InoutOutput
    GROUP BY Format([DteOperation],"mmmm-yyyy");
    Good luck and never give up

  8. #8
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    la requête pourrait donc être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Format([DteOperation],"mmmm-yyyy") AS Mois, Sum(nz([Input],0)) AS Entrees, Sum(Nz([Output],0)) AS Sorties, Sum(nz([Input],0)+nz([Output],0)) AS Total
    FROM InoutOutput
    GROUP BY Format([DteOperation],"mmmm-yyyy")
    ORDER BY Year([DteOperation])*100+Month([DteOperation]);
    les données seront donc triées par années et par mois croissant
    meme si la manière est peu orthodoxe, cela fonctionne

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    j'ai essayé mais ça marche pas! j'ai eu cette erreur :
    "vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée ORDER BY Year([DteOperation])*100+Month([DteOperation]) comme une partie de la fonction d'agrégat"

    j'ai même essayé d'autre façon de tri mais pas de résultat!
    Good luck and never give up

  10. #10
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Il s'agit d'un tri interne,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Year([DteOperation])*100+Month([DteOperation])
    doit se trouver dans votre clause SELECT.

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  11. #11
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    Si j'ai bien compris, je mets ce code dans la clause select avec ORDER BY a la fin de la requête!
    et si je fait ça, ça fonctionne pas aussi
    Good luck and never give up

  12. #12
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    RE,

    Qui dit dans le SELECT dit aussi dans la clause GROUP BY() dû aux SUM().

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  13. #13
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    ça fonctionne maintenant ^^ Merci Chtulus et a toi aussi helas
    Good luck and never give up

  14. #14
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    RE,

    Tu allais finir par me faire peur
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  15. #15
    Membre régulier
    Homme Profil pro
    Développeur PLSQL / SQL SERVER
    Inscrit en
    Décembre 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur PLSQL / SQL SERVER

    Informations forums :
    Inscription : Décembre 2010
    Messages : 138
    Points : 78
    Points
    78
    Par défaut
    lol, t’inquiète ^^ je n'étais pas du tout concentré
    Good luck and never give up

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

Discussions similaires

  1. [DATA] Classer les variables par ordre alphabétique dans une table
    Par alers dans le forum SAS Base
    Réponses: 5
    Dernier message: 11/03/2015, 14h40
  2. Réponses: 3
    Dernier message: 04/07/2008, 12h00
  3. Réponses: 1
    Dernier message: 16/11/2007, 10h28
  4. créer une requête qui selectionne les 10 derniers enregistrements
    Par kuhnden dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/04/2007, 16h13
  5. Ordre alphabétique dans une liste déroulante
    Par Z[ee]k dans le forum Access
    Réponses: 2
    Dernier message: 30/05/2006, 15h02

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