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

SQL Oracle Discussion :

MAX () de plusieurs colonnes


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Points : 17
    Points
    17
    Par défaut MAX () de plusieurs colonnes
    Bonjour

    Je me permets de vous solliciter pour avoir un petit coup de main sur un probleme que je rencontre

    Ca rentre dans le cadre de ce post mais la solution proposée ne marche pas pour moi

    je vous met la table a partir de la laquelle j aimerai récupérer le max de chaque colonne avec la date

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    date	UN_PLUS	UN	UN_MOINS	DEUX_PLUS	DEUX	DEUX_MOINS	TROIS_PLUS	TROIS	TROIS_MOINS	QUATRE_PLUS	QUATRE	QUATRE_MOINS	CINQ_PLUS	CINQ	CINQ_MOINS	SIX_PLUS	SIX	SIX_MOINS	SEPT_PLUS	SEPT	SEPT_MOINS	HUIT_PLUS	HUIT	HUIT_MOINS	NEUF_PLUS	NEUF	NEUF_MOINS	DIX_PLUS	DIX	DIX_MOINS
    31/03/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/04/2005	0	0	0	0	0	0	0	0	0	0	0	0	4,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/05/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/06/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/07/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/08/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/09/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/10/2005	0	0	0	0	0	0	0	0	0	0	0	0	4,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/11/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/12/2005	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/01/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    28/02/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/03/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/04/2006	0	0	0	0	0	0	0	0	0	0	0	0	4,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/05/2006	0	0	0	0	0	0	0	0	0	0	0	4,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/06/2006	0	0	0	0	0	0	0	0	0	0	0	4,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/07/2006	0	0	0	0	0	0	0	0	0	3,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/08/2006	0	0	0	0	0	0	0	0	0	0	0	0	4,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/09/2006	0	0	0	0	0	0	0	0	0	0	0	4,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/10/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/11/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/12/2006	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/01/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    28/02/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/03/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/04/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/05/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/06/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/07/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,33	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/08/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    30/09/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5,67	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    31/10/2007	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	0	0	0	0	0	0	0
    l idée serait de recuperer en sortie une table avec la valeur max de part date

    c est a dire

    par exemple pour la premiere date

    Date colonne Max valeur max
    31/03/2005 5 5

    vous pensez que c est possible

    Je vous remercie de votre aide

    Cordialement

  2. #2
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    Bonjour,

    Je ne comprends pas bien ce que tu cherches à obtenir.
    Si c'est pour une date donnée, le valeur la plus grande parmi toutes les colonnes de l'enregistrement, la fonction GREATEST(...) doit pouvoir répondre à ton besoin.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Points : 17
    Points
    17
    Par défaut MAX () de plusieurs colonnes
    Bonjour

    c est ce que j ai essayé de faire mais ca ne marche pas
    je pense que ca bloque au niveau de la date

  4. #4
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    Peux-tu poster la requête que tu as essayée et le message d'erreur que tu obtiens ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Points : 17
    Points
    17
    Par défaut MAX () de plusieurs colonnes
    Voici

    la la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT asof
           ,MAX (greatest (un_plus, un, un_moins))
            FROM filtre1
    et le message d erreur est le suivant :

    ORA - 00937 : la fonction groupe ne porte pas sur un groupe simple

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 079
    Points
    8 079
    Par défaut
    MAX permet de ramener la plus grande valeur, parmi plusieurs lignes, pour une colonne donnée.
    GREATEST permet de ramener la plus grande valeur, parmi plusieurs colonnes, pour une ligne donnée.
    D'après ce que j'ai compris de votre besoin, GREATEST tout seul suffit.

  7. #7
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    S'il y a un seul enregistrement par date, tu n'a pas besoin de grouper les lignes avec un MAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT asof
           ,greatest (un_plus, un, un_moins)
            FROM filtre1
    Par contre, si tu as plusieurs lignes par date, alors il te manque le GROUP BY pour préciser que tu veux un MAX par date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT asof
           ,MAX (greatest (un_plus, un, un_moins))
            FROM filtre1
            GROUP BY asof

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Points : 17
    Points
    17
    Par défaut MAX () de plusieurs colonnes
    Genial
    ca marche merci beaucoup

    franchement c est excellent excellent , excatement le resultat que je voulais
    merci encore

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

Discussions similaires

  1. Requête chiffre max entre plusieurs colonnes inconnues
    Par christophebe dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/02/2015, 20h21
  2. Afficher plusieurs colonnes avec fonction MAX
    Par koolshenntm dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/07/2014, 15h28
  3. Max sur plusieurs colonne
    Par Agent_Nivek dans le forum DB2
    Réponses: 5
    Dernier message: 14/10/2009, 11h54
  4. [MySQL] MAX sur plusieurs colonnes ?
    Par nimbus_77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2008, 20h00
  5. MAX() de plusieurs colonnes
    Par in dans le forum Oracle
    Réponses: 6
    Dernier message: 07/09/2006, 14h36

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