|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Bonjour,
Je ne trouve pas l'information à savoir s'il on faire un multiple join link entre 2 tables dans TOS ? En clair et en exemple : j'ai une table 1 en input qui contient n champs. J'ai une autre table 2 en input également qui me sert de référence dont un champ id en particulier. Je voudrais pouvoir faire un join link sur 2 champs de ma table 1 avec ce champ id de ma table 2 !! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 813 ![]() |
Oui ça se fait dans un tMap par exemple.
Ca ne fonctionne pas ?
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Disons que mon champ 1 de ma table 1 je le drag n drop sur mon id de ma table2 donc j'ai un lien violet de la jointure. Je peux faire pareil avec mon champ 2 de ma table 1 mais après je fais quoi de l'expression ??
Les 2 champs côte à côte comme cela n'est pas une expression valide pour TOS et si je tente des égalité avec des OU il me dit que le champ et la row de la table 2 ne sont pas des entrées valides !! En fait je ne sais pas quoi mettre dans l'expression pour qu'il voit qu'il faille faire un join link sur l'un et l'autre de mes 2 champs issu de ma table 1 |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
Salut,
Je me demande si ce que tu essaies de faire est logique, car si on prend l'exemple suivant : Table1: avec 3 champs C1 | C2 | C3 id11| toto| id31 id12| tata| id32 id13| titi | id33 id14| tutu| id34 Table2: avec 2 champs C4 | C5 id41| momo id42| mama Maintenant, tu voudrais faire une jointure de sorte que C1 = C4 et C3 = C4 donc ça revient tout simplement à faire une jointure à C1 = C4 puisque ça voudrait dire que C1 sera forcément égale à C4. Si je me trompes corrige moi STP.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 813 ![]() |
Ah ok c'est soit l'un soit l'autre ? quelle est la règle de gestion ?
Il sera peut être nécessaire de faire 2 look up, un par jointure.
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Haskouse : en gros oui sauf que dans l'esprit c'est C1 = C4 OU C3 = C4 car ces champs se retrouvent séparés à la sortie ..
Benoit : J'ai imaginé faire un lookup pour chaque jointure sauf que si j'ai pris 2 champs à joindre dans mon exemple en fait j'en ai une 10 aine !!! Là ca devient plus fastidieux
|
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Pour le moment j'ai fait autant de lookup avec un jointure sur chaque champ de ma table 1 avec le champ de ma table 2 en référence.
Cela fait une duplication autant de fois de ma table de référence pour le même champ de référence. et en effet cela fonctionne chaque jointure se fait et me restitue bien les bonnes valeurs en sortie. C'est étonnant qu'on ne puisse pas utiliser qu'une seule fois la référence et faire une expression qui fasse une sorte de OU exclusif sur les champs de ma table 1 qui ont cette même référence du champ de ma table 2 !!! |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Il semblerait qu'un composant existe pour cela .. ou plutôt ait existé : le tPivotToRows sauf qu'il n'apparait plus dans les versions récentes de TOS .. en tout cas pas dans la 4.2.2
|
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Bonjour,
D'un point de vue théorique, c'est pourtant la bonne manière de faire. Si tu as plusieurs champs que tu dois vérifier par rapport à un même référentiel, il faut mapper autant de lookup que de champs. Après, suivant ta problématique, tu peux effectivement normaliser tes données afin de récupérer autant de lignes que de valeurs à tester, et du coup n'utiliser qu'un seul lookup. Pour cela, tu peux utiliser le tNormalizeRow. Nicolas |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Oui mais qd tu as 12 champs à plat que tu veux mapper ca devient lourd pour le schéma. J'ai trouvé un composant (externe) qui a été fait pour cela le tUnpivotRows ... Après qques heures de compréhension sur la manière de faire les liens j'arrive à un début de résultat ... Sauf que mon join link avec ma table de référence ne fonctionne pas !!!
Pour illustrer ma problématique, voilà ce que j'ai en entrée : Table1 Id | name1 | name2 | name3 | name4 | name5 12 | aaaa | tata | 2222 | cccc | 145 | eeee | toto | 3333 | dddd | FFF 34 | iiii | titi | 4444 | | HHH Table_ref name | type | description toto | wood | blabla tata | bread | blibli titi | salt | bleble aaaa | peper | eeee | mustard | iiii | undefined | bloblo 2222 | salad | blublu 3333 | tomato | 4444 | undefined | cccc | undefined | blabla dddd | chocolate | bloblo FFF | coffe | blybly HHH | undefined | Et en sortie je voudrais ceci : Id | name | type | description 12 | aaaa | peper | 12 | tata | bread | blibli 12 | 2222 | salad | blublu 12 | cccc | undefined | blabla 145 | eeee | mustard | 145 | toto | wood | blabla 145 | 3333 | tomato | 145 |dddd | chocolate | bloblo 145 | FFF | coffee | blybly etc .. etc Sauf qu'en sortie j'ai ca : Id | name | type | description 12 | aaaa | | 12 | tata | | 12 | 2222 | | 12 | cccc | | 145 | eeee | | 145 | toto | | 145 | 3333 | | 145 |dddd | | 145 | FFF | | etc .. etc Il ne m'a pas fait mon join link dans la tMap entre mon pivot_value qui contient bien les différentes valeurs de "name1, "name2", etc et le champ "nom" de ma table de référence !!! |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Chris MInscription : décembre 2009 Messages : 60 ![]() |
Avec le composant tUnpivotRows qui est un add-on j'ai réussi mon opération !!!
J'ai capté comment on utilisait le pivot de référence et sa valeur !! Pas simple de 1ere abord mais on s'en sort bien ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com