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 :

Requêtes imbriquées et résultat null


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut Requêtes imbriquées et résultat null
    Bonjour,
    J'ai une requête du type


    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
    SELECT
    c.code code_clie,
    c.libe nom_clie,
    bvisite.udate Bon_visite,
    accept.udate Acceptation,
    refu.udate Refu_apres_visite,
    appro.udate Approbation,
    creserv.udate Contrat_reserv,
    tagence.udate Trans_agence,
    cbail.udate Creation_bail
     
    FROM
    client c, evenement ev,
    (SELECT code, udate from evenement where refe = '1203' AND code = '123456') bvisite,   --Emission bon de visite
    (SELECT code, udate from evenement where refe = '1202' AND code = '123456') accept,    --Acceptation après visite
    (SELECT code, udate from evenement where refe = '1204' AND code = '123456') refu,      --Refu après visite
    (SELECT code, udate from evenement where refe = '1211' AND code = '123456') appro,     --Approbation
    (SELECT code, udate from evenement where refe = '1311' AND code = '123456') creserv,   --signature contrat de reservation
    (SELECT code, udate from evenement where refe = '1208' AND code = '123456') tagence,   --Transfert agence
    (SELECT code, udate from evenement where refe = '0200' AND code = '123456') cbail      --Creation du bail
     
     
    WHERE
    c.code = ev.code
    AND c.role = '1'
    AND ev.code = '123456'
    AND ev.code = bvisite.code AND ev.code = accept.code AND ev.code = refu.code AND ev.code = appro.code AND ev.code = creserv.code AND ev.code = tagence.code AND ev.code = cbail.code
     
    ;

    Si une des sous requêtes du FROM renvoi une valeur null, l'ensemble de la requête ne renvoi rien. Si toute les sous requêtes renvoient une valeur, la requête globale renvoi bien le résultat.
    Comment puis-je faire pour que la requête globale renvoi un résultat même si une de sous requête renvoi null ?

    Bonne Journée,

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Je pense que la réponse que vous cherchez est faire un Outer Join. Pourtant la requête sera meilleurs dpv performance si vous allez adopter une autre approche
    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
     
    SQL> Select e.empno, e.ename,
      2         Case When e.job = 'CLERK' Then Hiredate Else Null End Clerk_date,
      3         Case When e.job = 'SALEMSMAN' Then Hiredate Else Null End Salesman_date,
      4         Case When e.job = 'ANALYST' Then Hiredate Else Null End Analyst_date
      5  from emp e
      6  /
     
    EMPNO ENAME      CLERK_DATE  SALESMAN_DATE ANALYST_DATE
    ----- ---------- ----------- ------------- ------------
     7369 SMITH      17/12/1980                
     7654 MARTIN                               
     7782 CLARK                                
     7788 SCOTT                                09/12/1982
     7839 KING                                 
     7844 TURNER                               
     7876 ADAMS      12/01/1983                
     7900 JAMES      03/12/1981                
     7902 FORD                                 03/12/1981
     7934 MILLER     23/01/1982

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut
    Merci pour l'info. Malheureusement je ne maitrise pas encore le "case", ...

Discussions similaires

  1. [AC-2007] Requêtes imbriquées sans résultat
    Par Nelpha dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 24/08/2010, 10h44
  2. Réponses: 4
    Dernier message: 24/06/2008, 12h18
  3. Requête imbriquée, ou pas, avec résultat nul
    Par skyl_pioup dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/12/2007, 20h50
  4. Réponses: 2
    Dernier message: 25/11/2007, 16h37
  5. requête renvoie résultat NULL
    Par dubitoph dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/10/2007, 09h15

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