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

PL/SQL Oracle Discussion :

Aide méthode jointure selective (critère)


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut Aide méthode jointure selective (critère)
    Bonjour,
    J'ai une requête simple qui me renvoie un résultat T0, avec un champ A et plein d'autres.
    Je souhaite ajouter un champ calculé B fonction de la valeur de mon champ A
    Ce champ B proviendra d'autres tables, différentes selon mon champ A
    J'ai donc besoin de faire des jointure sélectives avec critères et je ne sais pas trop comment m'y prendre.

    Concrètement,
    Si T0.A = "X" alors je me jointe sur la table T1 pour renvoyer son champ N1 au niveau de mon champ calculé T0.B

    Si T0.A = "Y" alors je me jointe sur la table T2 pour renvoyer son champ N2 au niveau de mon champ calculé T0.B également

    Merci de votre aide, j'espère avoir été clair
    Laurent

  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
    Il y a plusieurs façons de faire mais votre exemple n’est très précis; en gros vous pouvez faire la jointure des tables T0, T1 et T2 et utiliser case ou decode sur la zone T0.A.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    En fait j'ai T0 au départ et fonction d'une valeur d'un champ A de T0, je veux générer un champ B que j'irai récupérer soit dans T1 ou T2 fonction de la valeur de A

    J'imagine un case sur A avec une jointure différente selon sa valeur mais j'ai du mal à me le représenter.

    Laurent

  4. #4
    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
    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
    32
    33
    34
     
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
    Connected as mni
     
    SQL> 
    SQL> Select empno, ename,
      2         case when job = 'MANAGER' Then s.grade Else d.deptno end grade_or_departement_number
      3    from emp e
      4         Join
      5         dept d
      6     On (e.deptno = d.deptno)
      7         Join
      8         salgrade s
      9     On (e.sal between s.losal and s.hisal)
     10  /
     
    EMPNO ENAME      GRADE_OR_DEPARTEMENT_NUMBER
    ----- ---------- ---------------------------
     7369 SMITH                               20
     7900 JAMES                               30
     7876 ADAMS                               20
     7521 WARD                                30
     7654 MARTIN                              30
     7934 MILLER                              10
     7844 TURNER                              30
     7499 ALLEN                               30
     7782 CLARK                                4
     7698 BLAKE                                4
     7566 JONES                                4
     7788 SCOTT                               20
     7902 FORD                                20
     7839 KING                                10
     
    14 rows selected

Discussions similaires

  1. De l'aide pour Jointure, avec selection count =0
    Par onemart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/01/2009, 09h01
  2. [Débutant] Aide sur jointure
    Par chapron dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/08/2006, 23h00
  3. [MySQL] aide sur un select
    Par nebil dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2006, 12h54
  4. [VBA-Excel] aide pour maccro (selection)
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/02/2006, 08h53
  5. Aide pour un SELECT MAX(...)
    Par Gladiator dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/06/2005, 16h48

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