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

Langage SQL Discussion :

sélection d'un max parmi plusieurs champs


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut sélection d'un max parmi plusieurs champs
    Casse-tête (SQL Serv):

    Une table comme suit:

    id / D1 / D2 / D3

    Les 3 champs D1à3 sont des dates, comment remonter la plus grande des 3, sachant évidemment que le max ne s'applique que sur un seul paramètre

    merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Même si ton SGBD n'est pas ORACLE lis l'article suivant sur le ROW VALUE CONSTRUCTOR car il détaille la démarche à adopter pour les autres SGBD.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Je ne suis pas sur qu'ils'agisse de ça, Magnus. je pense que notre ami veut récupérer celui de ses 3 champs qui ait la plus grande valeur.

    Voici un exemple de la manière dont je procéderai (j'ai choisi des champs NUMBER pour me simplifier la vie ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> create table Test (id Number(10),
      2                     D1 number(2),
      3                     D2 number(2),
      4                     D3 number(2));
     
    insert into Test (id, D1, D2, D3) values (1, 3, 5, 7);
    insert into Test (id, D1, D2, D3) values (2, 3, 7, 8);
    La requête suivante me donne bien le résultat voulu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> SELECT id, MAX (Dx) FROM
      2  (SELECT id, D1 AS Dx FROM Test
      3  UNION ALL
      4  SELECT id, D2 AS Dx FROM Test
      5  UNION ALL
      6  SELECT id, D3 AS Dx FROM Test)
      7  GROUP BY id;
     
            ID    MAX(DX)
    ---------- ----------
             1          7
             2          8
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

Discussions similaires

  1. [AC-2003] Trouver la valeur Max entre plusieurs champs
    Par Jbone dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/12/2010, 20h08
  2. Réponses: 1
    Dernier message: 21/04/2009, 22h17
  3. Select de la date max de plusieurs champs
    Par Maillon dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/11/2008, 13h40
  4. requête max sur plusieurs champs
    Par logica dans le forum Access
    Réponses: 3
    Dernier message: 28/03/2006, 16h31
  5. Sélection d'enregistrement parmis plusieurs identiques
    Par monnoliv dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/09/2005, 15h32

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