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 MySQL Discussion :

Triage des données compliqué


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Triage des données compliqué
    Salut,

    Après une recherche de quelques heures pour résoudre un problème avec une requête mais sans résultat, permettez-moi de chercher de l’aide sur ce forum.

    Voila j’ai une table avec les données suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ID - Produit - Statut
    1  - ABC     - 1
    2  - ZER     - 3
    3  - UYI     - 3
    4  - OPL     - 1
    5  - UIJ     - 2
    6  - RTE     - 3
    7  - TYG     - 2
    8  - AZD     - 2
    9  - XCD     - 3
    10 - HTG     - 1
    Serait'il possible de trier les produits par ordre décroisant selon le statut avec la condition suivante :
    - pour le statut 3 mettre order by id desc
    - pour le statut 2 mettre order by id asc
    - pour le statut 1 mettre order by id desc

    Ce qui nous donne pour l'exemple le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    9  - XCD     - 3
    6  - RTE     - 3
    3  - UYI     - 3
    2  - ZER     - 3
    5  - UIJ     - 2
    7  - TYG     - 2
    8  - AZD     - 2
    10 - HTG     - 1
    4  - OPL     - 1
    1  - ABC     - 1
    Merci d’avance pour toutes vos suggestions.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    oui avec une structure case / when dans l'order by (pour la 2eme colonne de tri)

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Merci punkoff pour ton aide. J'ai recherché côté case / when et j'ai pu trouver la solution suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT * FROM test 
    WHERE 1=1
    ORDER BY
    	statut DESC,
    CASE WHEN statut=3 THEN id END DESC,
    CASE WHEN statut=2 THEN id END ASC,
    CASE WHEN statut=1 THEN id END DESC
    Pouvez-vous me dire si cette solution est la meilleure solution pour mon cas.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Au vu de votre demande je ne vois pas d'autre solution personnellement.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/05/2010, 01h43
  2. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  3. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Réponses: 2
    Dernier message: 18/12/2002, 10h30

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