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 :

[AIDE] Sélectioner les 3 meilleurs combinaisons d'une table


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [AIDE] Sélectioner les 3 meilleurs combinaisons d'une table
    Bonjour,

    J'ai une petite question concernant un exercice que je dois faire.

    J'ai une table me donnant le volume des ventes.

    Exemple:

    Voiture | vte couleur rouge | vte couleur bleu | vte couleur verte

    v1, 1000, 500, 100
    v2, 500, 800, 600
    v3, 250, 300, 350
    v4, 100, 200, 300

    Je dois sélectionner les 3 meilleurs combinaisons de vente.
    Donc, selon l'exemple, je dois obtenir
    V1 + rouge, V2 + bleu et V2 + verte.

    Comment dois-je faire une telle requête?

    J'avais pensé faire un Max sur chaque colonne, mais je peux manquer des résultats si j'ai un plus gros volume de vente dans la même couleur.
    ([V1, 1000, 500, 100], [V2, 800, 400, 300],[ V3, 250, 700, 200])

    Avez-vous une idée?

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 036
    Points : 23 782
    Points
    23 782
    Par défaut
    Bonjour,

    Le problème vient surtout d'une modélisation des données qui ne convient pas...
    Avez-vous la possibilité de modifier ce modèle de données ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Non malheureusement.
    Mais, rien m'empêche de créer de nouvelle table à partir de ce modèle.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT voiture,venteRouge AS vente
    FROM tableVente
    UNION 
    SELECT voiture,venteBleu
    FROM tableVente
    UNION 
    SELECT voiture,venteVerte
    FROM tableVente
    ORDER BY vente DESC LIMIT 3

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 036
    Points : 23 782
    Points
    23 782
    Par défaut
    Il est même possible d'obtenir la couleur correspondante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT voiture, 'rouge' AS couleur, venteRouge AS vente
    FROM tableVente
    UNION 
    SELECT voiture, 'bleu' AS couleur, venteBleu
    FROM tableVente
    UNION 
    SELECT voiture, 'vert' AS couleur, venteVerte
    FROM tableVente
    ORDER BY vente DESC LIMIT 3

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Si il y a beaucoup de données, je suppose qu'il est souhaitable de limiter le nombre de résultat des sous requêtes :
    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
    16
    17
    18
    19
    20
    21
    SELECT voiture, couleur, vente FROM
    (
      (
        SELECT voiture, 'rouge' AS couleur, venteRouge AS vente
        FROM tableVente
        ORDER BY vente DESC LIMIT 3
      ) 
      UNION 
      ( 
        SELECT voiture, 'bleu' AS couleur, venteBleu AS vente
        FROM tableVente
        ORDER BY vente DESC LIMIT 3  
      ) 
      UNION 
      (
        SELECT voiture, 'vert' AS couleur, venteVerte AS vente
        FROM tableVente
        ORDER BY vente DESC LIMIT 3
      )
    ) tmp
    ORDER BY vente DESC LIMIT 3
    Ou pas ...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup.
    J'ai testé et ça fonctionne!.

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

Discussions similaires

  1. Meilleure combinaison d'une table
    Par jo658 dans le forum SSAS
    Réponses: 2
    Dernier message: 30/11/2012, 02h30
  2. [MySQL] Supprimer les informations des champs dans une table (suite)
    Par snakejl dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 26/05/2006, 15h37
  3. Tester les droits en écriture sur une table en VBA ?
    Par yerome60 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 21h43
  4. [MySQL] recuperer tous les id n'appartenant pas à une table
    Par Elianora la blanche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/10/2005, 15h04

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