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 :

select dans un select


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Points : 99
    Points
    99
    Par défaut select dans un select
    bonjour à tous,

    J'ai un select X from Y where truc=machin
    Ca me donne deux elements:
    Ces derniers portent le nom de CodeInterro dans la table Interros. Dans cette meme table, il existe un champs "NoteMax".

    Je souhaite récupérer "NoteMax" uniquement!!!

    Donc, à partir de la premiere selection, je souhaite séléctionner les noteMax et les mettre dans un nouveau champs.

    Je m'explique:

    Ma premiere selection donne:
    Dans la table Interros, ces deux code sont comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CodeInterro     NoteMax
    I01                    20
    I02                    30
    Je souhaite faire une requete pour avoir juste
    Merci à tous.

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut Re: select dans un select
    Citation Envoyé par Terminator
    select X from Y where truc=machin
    Très pratique comme notation ...
    Y est ta table Interros ou il s'agit d'une autre table ?
    Ca serait plus facile de t'aider si tu donnais plus d'explications.
    a+

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Points : 99
    Points
    99
    Par défaut
    X, Y, truc et machin sont des indices que j'ai mis pour ne pas tout remettre (sinon tout le monde va s'y perdre )

    Au fait, Y est une table qui n'est pas Interros!!!

  4. #4
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Justement, il serait plus clair d'avoir les descriptifs de tes tables

    Pour l'instant on ne pige pas la problématique !!!

  5. #5
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Je propose alors un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT NoteMax
    FROM Interros
    WHERE CodeInterros IN (
        SELECT X FROM Y Where Truc = Machin
    )
    a+

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT NOTEMAX
    FROM INTERROS
    WHERE CODEINTERRO IN (SELECT X
        FROM Y
        WHERE TRUC = MACHIN)
    Attention :
    1/ ça ne fonctionnera que si X est une colonne compatible avec INTERROS.CODEINTERRO
    2/ cette solution ne marchera pas si ton SGBD est MySQL < 4.1

    Si ça ne fonctionne pas indique avant toute chose ton SGBD, sa version, etc. bref tout ce qui est DEMANDE dans les règles du forum !
    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

  7. #7
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2004
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2004
    Messages : 528
    Points : 99
    Points
    99
    Par défaut
    Impecable, ca marche!!!!

    Moi j'avais essayé la meme chose mais sans le IN

    MERCI A TOUS

  8. #8
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Si vous le prenez avec cette définition, la formulation est la suivante

    Si X est monovalué dans Y :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
              NOTEMAX
    FROM
               INTEROS A
           INNER JOIN
                Y            B
           ON
                B.X = A.CODEINTERRO
    WHERE
                A.TRUC = 'MACHIN'
    Si ton X est multivalué dans Y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT
              NOTEMAX
    FROM
               INTEROS A
           INNER JOIN
        ( select
                    distinct( X ) X
          from
                     Y
          where
                TRUC = 'MACHIN'
        ) AS B
           ON
                B.X = A.CODEINTERRO

Discussions similaires

  1. [PL\SQL] Faire un select dans un select
    Par dragonfly dans le forum SQL
    Réponses: 3
    Dernier message: 29/02/2008, 17h12
  2. Selection d'une selection dans un filtre
    Par Swiper dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2007, 19h26
  3. changement de formulaire sur selection dans le select
    Par LeXo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/06/2006, 11h51
  4. [firebird] sous select dans un select
    Par gdido dans le forum SQL
    Réponses: 2
    Dernier message: 14/05/2004, 09h57
  5. [Sybase] Select dans une select loop en C
    Par Claudio dans le forum Sybase
    Réponses: 2
    Dernier message: 29/04/2003, 18h06

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