Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
afguillard
New Contributor III

Fusion de deux champs

Bonjour,

Quelle est la fonction pour obtenir la concaténation suivante :

Compte clientProduitCode promo
123451246AA
123451246BB

résultat

Compte clientCode promo
12345A,B

Merci de votre aide.

Anne-Flore

Tags (1)
1 Solution

Accepted Solutions
sfatoux72
Valued Contributor

Re: Fusion de deux champs

Et au cas où tu as plusieurs fois le même code promo pour un même Compte Client, on peut ajouter DISTINCT pour supprimer les doublons :

Load

    [Compte client],

    Concat(DISTINCT [Code promo], ',') as [Code promo]

Resident T_Data

Where Len(Trim([Code promo])) <> 0

Group By [Compte client];

7 Replies
sfatoux72
Valued Contributor

Re: Fusion de deux champs

Bonjour Anne-Flore,

Il faut utiliser comme dimension Compte Client et comme expression la fonction d'agrégation Concat.

=Concat([Code promo], ',')

afguillard
New Contributor III

Re: Fusion de deux champs

Bonjour Sébastien,

En fait, je voudrais le faire dans le script pour éviter les doublons.

sfatoux72
Valued Contributor

Re: Fusion de deux champs

Je te laisse adapté le script à tes données, mais il suffit de faire un Group By et d'utiliser la fonction Concat :

Load

    [Compte client],

    Concat([Code promo], ',') as [Code promo]

Resident T_Data

Group By [Compte client];

afguillard
New Contributor III

Re: Fusion de deux champs

Merci, ça semble fonctionner, mis à part le fait que cela s'applique à tous les champs Code promo, même les vides or parfois, je n'ai pas de code promo, et d'autres fois, j'ai un seul code promo pour un compte client, mais je ne veux en conserver qu'un seul (celui qui est rempli).

sfatoux72
Valued Contributor

Re: Fusion de deux champs

Il suffit de supprimer les code promo vide :

Load

    [Compte client],

    Concat([Code promo], ',') as [Code promo]

Resident T_Data

Where Len(Trim([Code promo])) <> 0

Group By [Compte client];

sfatoux72
Valued Contributor

Re: Fusion de deux champs

Et au cas où tu as plusieurs fois le même code promo pour un même Compte Client, on peut ajouter DISTINCT pour supprimer les doublons :

Load

    [Compte client],

    Concat(DISTINCT [Code promo], ',') as [Code promo]

Resident T_Data

Where Len(Trim([Code promo])) <> 0

Group By [Compte client];

afguillard
New Contributor III

Re: Fusion de deux champs

Merci beaucoup ! ça fonctionne parfaitement !

Anne-Flore