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 :

Jointure externe (+) suivi d'un when case


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut Jointure externe (+) suivi d'un when case
    Bonjour,

    faire une jointure externe suivi d'une liste n'est pas possible, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from table t
    where t.col (+) in (1,2,3)
    Maintenant j'ai procédé de cette façon pour arriver à ce que je voulais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from table t
    where t.col (+) = (decode, col1, 'A', 1, 'B', 2, 3)
    Maintenant tout se complique parce que j'ai remplacé mon decode par un when case plus simple a lire et surtout plus souple, admettons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT *
    FROM table t, table2 t2, table t3
    WHERE t.id = t2.id (+)
    AND t.col = t3.col
    AND t.id (+) = case
    WHEN t = 'A' AND t3 = 'B' then 'TOTO'
    WHEN t = 'A' AND t3 = 'C' then 'TATA'
    ELSE 'TOTA'
    END

    du coup forcément, ca marche pas...apparemment je ne px pas faire de jointure externe sur plus d'une table (normal) mais c'est valable même lorsque l'on procède par when case ?

    Existe-t-il une solution, hormis celle ou je dois faire des sous requetes...mon but étant de le faire en une requete...c'est possible ?

    Merci de votre aide,
    Sai

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Laissez tomber les vieillissant (+) et utilisez des OUTER JOIN.
    Vous pouvez lire ce très bon sujet de pacmann :
    http://pacmann.over-blog.com/article...-38449736.html

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut
    Merci, très bonne lecture puis... problème résolu en effet

    pour ceux à qui ça pourrait servir voici comment j'ai fait :

    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
    SELECT
    	*
    FROM
    	TABLE t
    	LEFT JOIN table2 t2
    		ON   t.id = t2.id
    	INNER JOIN table3 t3
    		ON   t.col = t3.col
    WHERE
    	(
    		t.col = CASE 
    		        	WHEN t.col = 'A'
    	AND t3.col = 'B' THEN 'TOTO' 
    	    WHEN t.col = 'A'
    	AND t3.col = 'C' THEN 'TATA' 
    	    ELSE 
    	    'TOTA' 
    	    END
    	OR  t.col IS NULL
    	)

    voila voila

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

Discussions similaires

  1. [CR9] faire une Jointure externe
    Par coldec dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 28/06/2005, 12h10
  2. Jointure externe compliquée
    Par miniil dans le forum Langage SQL
    Réponses: 9
    Dernier message: 19/02/2004, 09h27
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. [ jointure externe ] j'y pompe rien
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/12/2003, 17h57
  5. [Interbase] [Triggers] jointure externe
    Par AnestheziE dans le forum InterBase
    Réponses: 9
    Dernier message: 17/11/2003, 16h17

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