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 :

Problème de requête


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 37
    Points : 29
    Points
    29
    Par défaut Problème de requête
    Bonjour,

    voici la construction des tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Composant (Ref_Composant, longueur ...)
    Outil (Ref_Outil, Nom ....)
    Outiller (Ref_Composant Fk, Ref_Outil Fk, Date, utilisateur, Qt)
    Fiche_Outil (Ref_FO, nom ...)
    Composer (Ref_Composant Fk, Ref_Outil Fk, Ref_FO Fk, Date, utilisa, Nb)
    Donc une Fiche Outil est composé d'un ou plusieurs Composants et d'un Outil, ce que l'on retrouve dans la table composer. Un Outil est composé de plusieurs Composants, que l'on retrouve dans la table outiller.


    Je veux la liste des Composants d'une Fiche Outil.

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT composant.ref_composant 
    FROM composant, ficheoutil, composer, outil
    WHERE composant.ref_composant=composer.ref_composant and
    ficheoutil.ref_fo=composer.ref_fo and
    outil.ref_outil=composer.ref_outil and
    ficheoutil.ref_fo='FO1' and
    exists (SELECT composant.ref_composant
                         FROM composant,outil,outiller
                         WHERE
                         composant.ref_composant=outiller.ref_composant and
                         outil.ref_outil=outiller.ref_outil and
                         outil.ref_outil='outil1');
    Seulement je n'obtiens que les composant qui sont référencés dans la table Composer.
    La requête qui est imbriquée fonctionne. Elle m'obtient la liste des composant pour l'outil 'outil1'. La fiche outil 'FO1' a pour outil celui référencé par 'outil1'.

    Pouvez-vous me dire où je me plante svp ?

    Merci,
    Guy.

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Je ne comprends pas très bien ton problème.

    Peux-tu nous donner un jeu d'essai comme indiqué ici : dans le message suivant : " CONSEILS... à lire AVANT de POSTER ! merci "

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Pardon,

    voilà le jeu d'essai :

    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
    Table Composant :
    Ref_Composant     longueur
    --------------------------
    compo1                 15
    compo2                 10
    compo3                 20
    compo4                 30
    
    Table Outil :
    Ref_Outil      Nom
    -----------------------
    outil1          toto
    outil2          arthur
    
    Table Outiller :
    Ref_Composant    Ref_Outil         Date           Utilisateur   Qt
    -------------------------------------------------------------
    compo1               outil1         10/05/2006        guy           1
    compo2               outil1         10/05/2006        guy           1
    
    Table Fiche_Outil :
    Ref_FO             nom
    -----------------------
    FO1                  test
    FO2                  atome
    
    Table Composer :
    Ref_Composant     Ref_Outil     Ref_FO         Date       Utilisateur  Nb
    ------------------------------------------------------------------
    compo3               outil1          FO1        15/06/2006     Paul         5
    Je voudrais donc tous les composants qui ont un lien avec 'FO1'.
    Le résultat donnerait ce-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Résultat :
    Ref_Composant
    ----------------
    compo1
    compo2
    compo3
    En espérant que cela sera plus clair ....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Points : 66
    Points
    66
    Par défaut
    Tu as essayé avec un simple "OR"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT distinct composant.ref_composant
    FROM composer, outil,outiller,composant
    WHERE (composant.ref_composant=outiller.ref_composant and
    composer.ref_outil=outiller.ref_outil and 
    ref_fo="FO1") or (composer.ref_composant=composant.ref_composant
    and ref_fo="FO1");
    ou sinon avec "UNION" à la place de ton "EXISTS" dans la requête proposée.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Merci,

    j'étais tellement perdu dans mon blocage que je n'ai pas réussit à chercher plus loin ...

    Union et ta requête sont mes solutions,
    Encore merci.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 27/08/2003, 15h32
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème de requètes concurentes
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 3
    Dernier message: 08/08/2003, 16h51
  4. Réponses: 2
    Dernier message: 16/07/2003, 14h40
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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