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 :

intégré une sous requête dans une requête


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Par défaut intégré une sous requête dans une requête
    Bonjour,
    voici les tables et les champs dont j'ai besoin pour ma requête:
    C_QUESTION (NIQ,LIBABR) (table de questions)
    BM_REP_S (NIR,REPONSE,NILIB) (table de reponses)
    BM_LIB_S (NILIB,NIQ,NIQSUP,NILIBSUP,PARENTE) (table de correspondance entre les question-reponse et leur questions mère)
    le lien entre la question et sa question mère se fait grace au champ NIQSUP
    exemple:
    C_QUESTION.NIQ = 1, C_QUESTION.LIBABR = 'sous question'
    BM_REP_S.NILIB = 1, BM_REP_S.REPONSE = 'reponse de la sous question'
    BM_LIB_S.NILIB = 1, BM_LIB_S.NILIB =1, BM_LIB_S.NIQSUP = 2, BM_LIB_S.NILIBSUP = 2
    on peut trouver les question mère et la réponse mère
    C_QUESTION.NIQ = 2 => C_QUESTION.LIBABR = 'question mère'
    et BM_REP_S.NILIB = 2 => BM_REP_S.REPONSE = 'reponse de la question mère'


    voici ma requête principale!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select q3.LIBABR,r3.REPONSE
    from PENSOINS.BM_LIB_S lib2,
    PENSOINS.C_QUESTION q3,PENSOINS.BM_REP_S r3,
    where lib2.PARENTE like '674,%'
    and lib2.NIQ = q3.NIQ 
    and lib2.NILIB = r3.NILIB
    and lib2.NIQSUP is NULL
    and lib2.NILIBSUP is NULL
    and not exists (select lib1.NIQSUP from PENSOINS.BM_LIB_S lib1 where lib1.PARENTE like '674,%' and lib2.NIQ = Lib1.NIQSUP)
    ORDER BY 2,5
    je souhaite intégrer dans mes champs de selection :la date d'examen, qui est une réponse de la question "Date de l'examen"
    voici la sous requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select r4.REPONSE
    from PENSOINS.BM_LIB_S lib4,
    PENSOINS.C_QUESTION q4,PENSOINS.BM_REP_S r4
    where lib4.PARENTE like '674,%'
    and lib4.NIQ = q4.NIQ 
    and lib4.NILIB = r4.NILIB
    and q4.LIBABR like 'Date de l%'
    j'ai essayé ceci :
    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
    select r4.REPONSE as "date examen",q3.LIBABR,r3.REPONSE
    from PENSOINS.BM_LIB_S lib2,PENSOINS.BM_REP_S r4,
    PENSOINS.C_QUESTION q3,PENSOINS.BM_REP_S r3,
    PENSOINS.BM_TH_S th,PENSOINS.SEJOUR sj, 
    PENSOINS.PATIENT p
    where lib2.PARENTE like '674,%'
    and lib2.NIQ = q3.NIQ 
    and lib2.NILIB = r3.NILIB
    and lib2.NIQSUP is NULL
    and lib2.NILIBSUP is NULL
    and not exists (select lib1.NIQSUP from PENSOINS.BM_LIB_S lib1 where lib1.PARENTE like '674,%' and lib2.NIQ = Lib1.NIQSUP)
    and exists (select r4.REPONSE
    from PENSOINS.BM_LIB_S lib4,PENSOINS.BM_REP_S r4
    where lib4.PARENTE like '674,%'
    and lib4.NIQ = q3.NIQ 
    and lib4.NILIB = r4.NILIB
    and q3.LIBABR like 'Date de l%')
    même après 10 mn la requête n'est pas encore executée !!

    je vous remercie d'avance

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il nous faut l'explain plan

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Par défaut
    merci de m'avoir répondu,

    j'ai simplifié les requ^te dans le premier message du post, en gardant que les tables qui me pose problème.

    merci encore

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il nous faut quand même l'explain plan

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Par défaut
    j'ai ajouté un exemple pour mieu comprendre, merci encore

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Je te laisse la réponse Orafrance ?


    il nous faut quand même toujours l'explain plan

Discussions similaires

  1. [AC-2007] Concaténation dans une fonction et dans une requéte InsertInto
    Par Max_Agaki dans le forum VBA Access
    Réponses: 5
    Dernier message: 29/01/2015, 14h32
  2. Réponses: 13
    Dernier message: 27/04/2011, 16h59
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Requête utilisant une formule stockée dans une table
    Par alexiisme dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 23/01/2008, 07h01
  5. Réponses: 3
    Dernier message: 20/02/2007, 15h29

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