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

Développement SQL Server Discussion :

Trier des trimestres par ordre chronologique inversé


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut Trier des trimestres par ordre chronologique inversé
    Bonjour!

    J'avais malencontreusement posté ce sujet dans le forum Access alors que je suis sous SSMS, toutes mes excuses!
    Je vous avoue que je bloque sur un petit souci dans ma requête SQL, j'espère que quelqu'un saura m'éclairer.
    J'ai dans ma base de données, une table qui, entre autre, contient un champ PERIODE_DECOMPTE qui contient en fait des trimestres, au format XX_AAAA.
    Par exemple 01_2007, 02_2013, 03_2009, 04_2015... (tous les trimestres de début 2007 à début 2018).
    J'aimerais les trier par ordre chronologique inversé, mais forcément, quand je fais un ORDER BY PERIODE_DECOMPTE DESC, cela me trie les enregistrements par numéro de trimestre et non par année : 04_2017, 04_2016, 04_2015...
    Ce que j'aimerais c'est avoir 01_2018, 04_2017, 03_2017, 02_2017...

    Voici ma requête actuelle, rien de bien folichon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT PERIODE_DECOMPTE FROM CAV_DECOMPTE_APPORTEUR ORDER BY PERIODE_DECOMPTE DESC
    Quelqu'un pour m'aider et recevoir ma reconnaissance éternelle?

    J'avais reçu un début de réponse pour Access, mais je ne trouve pas les équivalents pour SSMS de Val et Mid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY Val(mid(PERIODE_DECOMPTE,4,4)) & Val(mid(PERIODE_DECOMPTE,1,2)) DESC
    Merci

    Edit : grâce au début de réponse ci-dessus, j'ai trouvé la solution, il m'a suffit de faire un ODER DESC sur les deux parties de la chaine de caractère en la découpant à l'aide de substring().

  2. #2
    Invité
    Invité(e)
    Par défaut
    Cas classique d'un mauvais choix initial de type de données...
    Pourquoi ne pas avoir 2 colonnes en chiffres avec les données de trimestre et d'années distinct ? Ou bien un champ date ?
    En plus, stocker le trimestre sur deux chiffres... C'est un peu trop prudent !
    Mon conseil serait de changer ça en premier si c'est possible.

    Sinon SSMS est un interface, ce n'est pas une base de données.

    Essayez ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ;WITH SR AS (
    	SELECT '04_2017' AS trimestre 
    	UNION ALL SELECT '04_2016'
    	UNION ALL SELECT '04_2015'
    	UNION ALL SELECT '01_2018'
    	UNION ALL SELECT '04_2017'
    	UNION ALL SELECT '03_2017'
    	UNION ALL SELECT '02_2017'
    )
    SELECT trimestre
    	, SUBSTRING(SR.trimestre, 2, 1) -- trimestre
    	, SUBSTRING(SR.trimestre, 4, 4) -- annee
    FROM SR
    ORDER BY SUBSTRING(SR.trimestre, 4, 4) 
    	, SUBSTRING(SR.trimestre, 2, 1)

  3. #3
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut
    Merci mais j'ai trouvé seule. Ce n'est pas moi qui ai choisi de coder l'enregistrement du trimestre ainsi...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sebriniel Voir le message
    Merci mais j'ai trouvé seule. Ce n'est pas moi qui ai choisi de coder l'enregistrement du trimestre ainsi...
    Ce n'est pas une raison de ne pas essayer d'améliorer les choses

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

Discussions similaires

  1. Trier des trimestres par ordre chronologique inversé
    Par Sebriniel dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/08/2018, 15h22
  2. Trier des combobox par ordre croissant et alphabétique
    Par floflo50100 dans le forum Excel
    Réponses: 6
    Dernier message: 09/04/2015, 15h31
  3. Trier des lignes par ordre alphabétique ?
    Par Evocatii dans le forum Eclipse
    Réponses: 0
    Dernier message: 11/08/2007, 11h26
  4. Re - Trier des données par ordre d'importance
    Par popoliline dans le forum Access
    Réponses: 14
    Dernier message: 25/08/2006, 12h29
  5. Trier des données par ordre d'importance
    Par popoliline dans le forum Access
    Réponses: 19
    Dernier message: 23/08/2006, 19h42

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