1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 10
    Points : 6
    Points
    6

    Par défaut Select indirect impossible

    Bonjour à tous,

    je tiens à vous préciser d'abord que je ne suis pas développeur professionnel merci.

    je cherche à faire une requête sur une table SQL nommée table_directe, elle contient un champ que j’appellerai champ_direct

    pour récupérer ce dernier, je passe par une seconde table nommée table_indirecte qui contient un numéro (NUM) et un champ que j’appellerai champ_indirect

    voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT (SELECT champ_indirect FROM table_indirecte WHERE NUM=2) FROM table_directe
    mais au lieu de récupérer les différente valeurs dans la table_directe correspondantes à la colonne renvoyée par le champ_indirect, je récupère x fois la valeur du champ_indirect lui même....

    quelqu'un pour m'aider ??

    merci d'avance



    Table directe :

    colonnes => champ_direct (INT)

    Table indirecte :

    colonnes => NUM (INT)
    champ_indirect (INT)

  2. #2
    Membre éclairé Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 724
    Points : 846
    Points
    846

    Par défaut

    Bonjour
    Pourquoi ne pas faire cette selection dans la table directe? A partir du moment où c'est un champ de la table directe que tu veux pourquoi passer par une autre table?
    En fait dis nous plus sur ce que tu veux justement faire pour qu'on puisse bien comprendre et te faire nos propositions.

    N'oublie pas d'utiliser la balise code # située au dessus de la zone de saisie du message quand tu veux poster un code ou une requête.

    Cordialement.

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 10
    Points : 6
    Points
    6

    Par défaut

    je vous ai tout dit, et je ne peut pas faire ma requête directement sur la table directe

  4. #4
    Membre éclairé Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 724
    Points : 846
    Points
    846

    Par défaut

    Alors çà ne nous aide pas à avancer. Je passe le relais à celui qui va te compredre.
    Cordialement

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2005
    Messages
    10 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 10 754
    Points : 21 825
    Points
    21 825

    Par défaut

    Bonjour,

    Elle marche bien cette requête elle a exactement fait ce que tu lui a demandé. Soit :

    Pour chaque enregistrement de la table "directe" renvoi moi la valeur de la colonne "indirecte" de la table "indirecte" dont la valeur de la colonne "Num" est "2".

    Si tu nous indiquais plutôt le but que tu recherches en faisant ce montage et surtout la relation entre ces 2 tables.

    Nous sommes d'un naturel curieux et nous aimons bien savoir où nous allons. C'est le gros défaut des développeurs.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Expert confirmé
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2016
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : septembre 2016
    Messages : 2 827
    Points : 4 827
    Points
    4 827
    Billets dans le blog
    1

    Par défaut

    Bonjour,
    Je pense que notre amis veux faire un générateur de requête!

    Affiche moi un select des champs de la table1 en prenant le nom des champs a sélectionné dans la table2?
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2005
    Messages
    10 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 10 754
    Points : 21 825
    Points
    21 825

    Par défaut

    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    Je pense que notre amis veux faire un générateur de requête!

    Affiche moi un select des champs de la table1 en prenant le nom des champs a sélectionné dans la table2?
    tu me prêteras ta boule de cristal ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Expert confirmé
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2016
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : septembre 2016
    Messages : 2 827
    Points : 4 827
    Points
    4 827
    Billets dans le blog
    1

    Par défaut

    Bonsoir loufab,
    Si tu ne la gardes pas trop longtemps car je l'utilise au travail!
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  9. #9
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 504
    Points : 4 346
    Points
    4 346

    Par défaut

    Bonjour,
    Citation Envoyé par virtu67
    je vous ai tout dit, et je ne peut pas faire ma requête directement sur la table directe
    ce n'est pas une réponse de quelqu'un qui demande de l'aide, donne au moins le lien entre les 2 tables :
    je cherche à faire une requête sur une table SQL nommée table_directe, elle contient un champ que j’appellerai champ_direct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ_direct from table_directe
    pour récupérer ce dernier, je passe par une seconde table nommée table_indirecte qui contient un numéro (NUM) et un champ que j’appellerai champ_indirect
    si il y existe un lien entre les 2 tables, ce devrait quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ_direct from table_directe where unchampdelatable_directe in (SELECT champ_indirect FROM table_indirecte WHERE num=2)
    et c'est ce lien qui manque dans tes explications.

  10. #10
    Expert confirmé
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2016
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : septembre 2016
    Messages : 2 827
    Points : 4 827
    Points
    4 827
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par virtu67
    mais au lieu de récupérer les différente valeurs dans la table_directe correspondantes à la colonne renvoyée par le champ_indirect, je récupère x fois la valeur du champ_indirect lui même....
    si ma boule de Crystal est bien taré, ce serait un truc en VBA du genre:
    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
    Option Compare Database
     
    Sub test()
    Dim Sql As String, rs As Object, Champs As String, i As Integer
    Sql = "SELECT champ_indirect FROM table_indirecte WHERE NUM=2"
    Set rs = CurrentDb.OpenRecordset(Sql)
    Champs = ""
    If Not rs.EOF Then
        While Not rs.EOF
            For i = 0 To rs.Fields.Count - 1
                If Champs = "" Then Champs = "[" & rs(i).Value & "]" Else Champs = Champs  & ",[" & rs(i).Value & "]"
            Next
            rs.MoveNext
        Wend
            Sql = " SELECT " & Champs & "  FROM table_directe"
            Debug.Print Sql
            Set rs = CurrentDb.OpenRecordset(Sql)
    End If
    End Sub
    Édit: Ce que tu veux faire n'est pas possible par requête sous requête!
    Les requête manipule des datas! Ici ta table champ_indirect te retourne des données tu ne peux pas les utiliser comme nom de champs de la table table_directe! Les requêtes ne s'exécutent pas en cascade!

    Tu veux faire deux requête bien distincte une qui récupère le nom de champs affin de gêner une autre requête!
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

Discussions similaires

  1. Multiple select - sélection impossible
    Par mouraf dans le forum Struts 2
    Réponses: 1
    Dernier message: 19/09/2009, 15h50
  2. Selection multiple impossible avec un listbox
    Par jolzeviking dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2008, 08h37
  3. [DB2]select compliqué ou impossible ?
    Par xavrdtp dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/09/2006, 16h34
  4. Réponses: 5
    Dernier message: 14/03/2006, 16h12
  5. double selection impossible
    Par Ghost Dog dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/05/2005, 19h42

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