Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 12h44   #1
Candidat au titre de Membre du Club
 
Justine Dreyfus
Inscription : juin 2010
Messages : 109
Détails du profil
Informations personnelles :
Nom : Justine Dreyfus

Informations forums :
Inscription : juin 2010
Messages : 109
Points : 14
Points : 14
Par défaut Requête avec des Join Externes

Bonjour,

Voici la requête que j'exécute dans mon tOracleInput :

"
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
SELECT A_NUM, A_DATE 
    B_COMPTE, B_DATE
    C_CODE, C_SECTEUR
    D_ADRESSE, D_LOCALITE
    E_SOCIETE, E_ETABLISSEMENT
        FROM TABLE_A, TABLE_B, TABLE_C, TABLE_D, TABLE_E
            WHERE A_ID = B_A_ID
            AND A_C_ID = C_ID
            AND C_E_ID = E_ID
            AND C_D_ID = D_ID
            AND A_ID IN (001,002)
"

Ma sélection principale se fait sur la table TABLE_A, il se peut que certains champs (utilisé pour effectuer les jointures) soient vide.
Par exemple :
  • A_ID est toujours renseigné, c'est la clé de TABLE_A
  • A_C_ID peut être vide
  • C_E_ID peut être vide
  • C_D_ID peut être vide
La table TABLE_B contient de 1 à N ligne(s) correspondant à un enregistrement de la table TABLE_A.

Mon objectif serait de retranscrire cette requête avec des jointures externes, afin de ne pas poser de problème pour la correspondance des champs.

Merci pour votre aide!
justinedr71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 12h59   #2
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

Ta problématique ne concerne pas Talend, mais juste du sql. Du coup ce n'est peut-être pas le bon forum pour cette question.

Ceci dit, il doit te falloir faire quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
SELECT A_NUM, A_DATE, B_COMPTE, B_DATE,
    C_CODE, C_SECTEUR,D_ADRESSE, D_LOCALITE,
    E_SOCIETE, E_ETABLISSEMENT
FROM TABLE_A
    LEFT OUTER JOIN TABLE_B ON A_ID = B_A_ID
    LEFT OUTER JOIN TABLE C ON A_C_ID = C_ID
    LEFT OUTER JOIN TABLE E ON C_E_ID = E_ID
    LEFT OUTER JOIN TABLE D ON C_D_ID = D_ID
WHERE 
    A_ID IN (001,002)
Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 10h12   #3
Candidat au titre de Membre du Club
 
Justine Dreyfus
Inscription : juin 2010
Messages : 109
Détails du profil
Informations personnelles :
Nom : Justine Dreyfus

Informations forums :
Inscription : juin 2010
Messages : 109
Points : 14
Points : 14
Bonjour

En fait je suis sous Oracle, cela se traduit donc par :

Code :
1
2
3
4
5
6
7
8
9
SELECT A_NUM, A_DATE, B_COMPTE, B_DATE,
    C_CODE, C_SECTEUR,D_ADRESSE, D_LOCALITE,
    E_SOCIETE, E_ETABLISSEMENT
        FROM TABLE_A, TABLE_B, TABLE_C, TABLE_D, TABLE_E
        WHERE A_ID = B_A_ID (+)
        AND A_C_ID = C_ID (+)
        AND C_E_ID = E_ID (+)
        AND C_D_ID = D_ID (+)
        AND A_ID IN (001,002)
Mais en tout cas oui, c'était bien un problème de SQL et de jointure externe, et non propre à Talend. Dsl pour le post au mauvais endroit...
Merci pour ta réponse en tout cas
justinedr71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 11h56   #4
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Avec plaisir

(En fait, ma syntaxe avec les left outer join marche aussi sous oracle. C'est la syntaxe que tu utilises (avec les (+)) qui est spécifique à oracle et ne fonctionne donc pas avec les autres bases de données).
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h53.


 
 
 
 
Partenaires

Hébergement Web