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

PHP & Base de données Discussion :

MAX sur plusieurs colonnes ?


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Points : 108
    Points
    108
    Par défaut MAX sur plusieurs colonnes ?
    j'ai une table contenant les champs suivants :
    [ id_base, nom, dpt, forfait, arrondi_10, arrondi_100, t1, t2 ... jusqu'à t15, p11,p12 ..... jusquà p25 ........ ]

    Je les valeurs inscritent dans p11 à p25 sont séquentielles et P2 est forcément plus que grand que p1, p3 > p2 .... ,
    exemple p1 = 30, p2 = 50 , p3 = 70,
    Tous les champs ne sont pas forcément rempli, par exemple la séquence peut s'arreter a p11, laissant les dernier à la valeur 0.

    J'ai besoin de connaitre la valeur la plus haute contenue dans ces champs 'p'.

    j'ai d'abord pensé à 'MAX' mais on ne peux le faire que sur une seule colonne, et la je dois chercher dans 15 colonnes.

    alors j'ai fait ç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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    SELECT case when 
    (case when p11 > p12 then p11 else p12 end) 
    > (case when p13 > p14 then p13 else p14 end) 
    > (case when p15 > p16 then p15 else p16 end) 
    > (case when p17 > p18 then p17 else p18 end)
    > (case when p19 > p20 then p19 else p20 end)
    > (case when p21 > p22 then p21 else p22 end)
    > (case when p23 > p24 then p23 else p24 end)
    > (case when p25 > p26 then p25 else p26 end)
     
    then    
    (case when p11 > p12 then p11 else p12 end) 
    > (case when p13 > p14 then p13 else p14 end)
    > (case when p15 > p16 then p15 else p16 end) 
    > (case when p17 > p18 then p17 else p18 end)
    > (case when p19 > p20 then p19 else p20 end)
    > (case when p21 > p22 then p21 else p22 end)
    > (case when p23 > p24 then p23 else p24 end)
    else
    (case when p25 > p26 then p25 else p26 end)
    end
    FROM    dls_trps_TEST
    LIMIT 1;
    J'obtiens le résultat escompté,

    mais, outre que j'ai du créer une colonne fictive p26, à '0' par default,
    je suis obligé de remplir les champs restants vides à la plus haute valeur.
    ( si mes valeurs s'arretent à p20, je suis obligé d'indiquer la valeur de p20 à toutes les colonnes suivantes).

    Si quelqu'un à une idée ?

    merci par avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Avec la fonction MySQL GREATEST ?

  3. #3
    Membre régulier Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par julp Voir le message
    Avec la fonction MySQL GREATEST ?
    j'ai vu cela, cela reduirait l'obligation de remplir tous les champs,
    mais ça ne me simplifie pas la vie

    En fait c'est surtout la syntaxe de du 'case ... then ... else' que je traduis mal.

    (meme si j'ai le résultat attendu)

    merci

Discussions similaires

  1. Max sur plusieurs colonne
    Par Agent_Nivek dans le forum DB2
    Réponses: 5
    Dernier message: 14/10/2009, 12h54
  2. trier un stringgrid sur plusieurs colonnes
    Par renegade55 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/12/2005, 17h30
  3. Jointure avec conditions sur plusieurs colonnes
    Par ben53 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/11/2005, 10h27
  4. Lister sur plusieurs colonnes dans état
    Par armagued dans le forum Access
    Réponses: 3
    Dernier message: 30/10/2005, 22h21
  5. Query sur plusieurs colonnes avec count(distinct...)
    Par Jeankiki dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2004, 16h22

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