Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
afguillard
Contributor III
Contributor III

Retrouver une chaîne de caractère dans un champ

Bonjour,

Comment lier deux tables dans Qlikview, avec des champs qui ne sont pas identiques mais dont on retrouve le contenu d'un champ de la première table, dans une chaîne de caractères de la deuxième.

Je m'explique :

Table 1 :

Code promo         Réf Promo

Promo1                    2017-12

Table 2

Code promo

Promo0,Promo1,Promo2

Je veux que les deux tables soient liées pour les données de la table 1 soient associées à la table 2.

Merci de votre aide.

Anne-Flore

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

‌Il faut ajouter une table qui fera le lien entre tes 2 tables

Il faut commencer par differencier les 2 champs. Renomme celui de la table 2 en Liste Code Promo.

Puis créé la table de lien

Table1 :

CodePromo         RéfPromo

Promo1                    2017-12

Table2

ListeCodePromo

Promo0,Promo1,Promo2

TableLien :

Load

  ListeCodePromo,

  Trim(SubField(ListeCodePromo, ',')) as CodePromo

Resident Table2;

View solution in original post

5 Replies
YoussefBelloum
Champion
Champion

Bonjour,

c'est possible mais il faut d'abord essayer de décrire le résultat souhaité.

avant de faire le right join sur la table2, la ligne décrite en haut, tu veux la diviser en 3 lignes comme ceci:

Table2:

Code Promo

Promo0

Promo1

Promo2

aprés le right join tu aura ceci:

Table2:

Code Promo, Réf promo

Promo0, ...

Promo1, 2017-12

Promo2, ...

afguillard
Contributor III
Contributor III
Author

Bonjour,

Je peux le faire avec subfield mais le problème c'est que ça va démultiplier les lignes de ma table 2 et après j'ai une erreur internal inconstancy.

En fait, le problème vient du fait que je peux avoir plusieurs promotions qui s'appliquent à une même commande et donc dans ce cas j'obtient un code promo pour la commande qui est la concaténation des deux codes promos (Promo1,Promo2). Or chaque code promo est lié à une promotion distincte et c'est à cette table des promotions que je veux lier ma commande.

N'y a t il pas un moyen de lier les tables autrement ?

Anne-Flore

YoussefBelloum
Champion
Champion

Ok donc regarde la réponse de Tresesco dans ce thread:

Re: Wildmatch in joining keys

ça devrait faire l'affaire.

tiens nous au courant

sfatoux72
Partner - Specialist
Partner - Specialist

‌Il faut ajouter une table qui fera le lien entre tes 2 tables

Il faut commencer par differencier les 2 champs. Renomme celui de la table 2 en Liste Code Promo.

Puis créé la table de lien

Table1 :

CodePromo         RéfPromo

Promo1                    2017-12

Table2

ListeCodePromo

Promo0,Promo1,Promo2

TableLien :

Load

  ListeCodePromo,

  Trim(SubField(ListeCodePromo, ',')) as CodePromo

Resident Table2;

afguillard
Contributor III
Contributor III
Author

Bonjour,

Cette solution fonctionne et ça me parait plus simple que la première solution proposée. Merci à tous les deux.

Bonne journée,

Anne-Flore