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 :

selection de la valeur MAX d'une sous requete


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 28
    Points
    28
    Par défaut selection de la valeur MAX d'une sous requete
    bonjour à tous

    voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT LibCéréale
    FROM TCEREALE, TDEPOT
    WHERE TCEREALE.CodeCéréale = TDEPOT.CodeCéréale
    GROUP BY LibCéréale
    HAVING SUM( QteDeposee ) = MAX(SELECT SUM( QteDeposee )
                                             FROM TCEREALE, TDEPOT
                                             WHERE TCEREALE.CodeCéréale = TDEPOT.CodeCéréale
                                             GROUP BY LibCéréale )
    je veux selectioner la valeur maximum que renvoit ma sous requête mais ça ne passe pas.

    merci de votre aide

  2. #2
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Essaie avec le max à l'intérieur de ta sous-requête.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select max(sum(qtedeposee))

  3. #3
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    SALUT,

    et cette requête donne quoi ? :*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT LibCéréale
    FROM TCEREALE, TDEPOT
    WHERE TCEREALE.CodeCéréale = TDEPOT.CodeCéréale
    GROUP BY LibCéréale
    HAVING QteDeposee = (SELECT MAX( QteDeposee )
                                             FROM TCEREALE, TDEPOT
                                             WHERE TCEREALE.CodeCéréale = TDEPOT.CodeCéréale
                                             GROUP BY LibCéréale )

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 934
    Points : 51 749
    Points
    51 749
    Billets dans le blog
    6
    Par défaut
    Beaucoup d'horreur dans votre code SQl
    1) faites vos jointures avec des clauses JOIN ON !!! La syntaxe avec des jointures dans le WHERE n'est plus valide depuis 1992... Vous n'avez donc que 15 ans de retard !!!
    A lire : http://sqlpro.developpez.com/cours/s...ointures/#L1.2
    2) n'utilisez JAMAIS de lettres accentuées eu autres caractères interdits dans vos noms d'objets. Vous vous exposez à de grave ennuis.
    A lire :
    http://sqlpro.developpez.com/cours/s...age=partie1#L1
    3) vous ne pouvez pas faire un MAX(COUNT)) car les groupages sont différents ! Vous devez utiliser une sous requête en table dérivée comme ci dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT LibCéréale
    FROM   TCEREALE COUT
           INNER JOIN TDEPOT DOUT
    WHERE  COUT.CodeCéréale = DOUT.CodeCéréale
    GROUP  BY LibCéréale
    HAVING SUM( QteDeposee ) = (SELECT MAX(Q)
                                FROM   (SELECT SUM( QteDeposee ) AS Q
                                        FROM   TCEREALE C
                                               INNER JOIN TDEPOT D
                                                     ON C.CodeCéréale = D.CodeCéréale
                                        GROUP BY LibCéréale ) AS T )
    Bref, il serait temps d'apprendre le SQL... Mon livre comme mon site web peut vous y aider !

    A +

Discussions similaires

  1. Valeur max d'une selection aléatoire
    Par mloic38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2013, 13h03
  2. Réponses: 1
    Dernier message: 16/12/2008, 19h13
  3. Réponses: 13
    Dernier message: 27/08/2007, 13h16
  4. Réponses: 4
    Dernier message: 29/06/2006, 16h50
  5. Selection de la valeur max et d'un nom associé
    Par djefff75 dans le forum Access
    Réponses: 7
    Dernier message: 24/02/2006, 12h21

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