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

Remplir une colonne dans une table selon des règles

Bonjour,

J'ai une table intitulée "Ecommerce"

Code produitCommandeN° inscription
PACK_REUSS111111AAAAA
P5365111111BBBBB
PACK_AVAN222222CCCCC
P2589333333DDDDD
P2589222222EEEEE

Une autre table "Inscriptions".

N° inscriptionCode promo
AAAAA
BBBBB
CCCCC
DDDDD
EEEEE

Je voudrais remplir le champ "Code promo" avec le libellé indiqué dans la colonne "Code produit" quand le libellé du code produit contient le mot "PACK" et pour la commande et tous les N° d'inscription associées.

Donc le résultat attendu est le suivant :

N° inscriptionCode promo
AAAAAPACK_REUSS
BBBBBPACK_REUSS
CCCCCPACK_AVAN
DDDDD
EEEEEPACK-AVAN

Merci de votre aide.

Bonne journée,

Anne

Tags (1)
5 Replies

Re: Remplir une colonne dans une table selon des règles

Here it is an example, if ypou have personal edition you will not open the document so I paste the script:

TAB:

LOAD * Inline [

Codeproduit, Commande, Ninscription

PACK_REUSS, 111111, AAAAA

P5365, 111111, BBBBB

PACK_AVAN, 222222, CCCCC

P2589, 333333, DDDDD

P2589, 222222, EEEEE

];

PROMO:

LOAD * Inline [

Ninscription

AAAAA

BBBBB

CCCCC

DDDDD

EEEEE

];

Left Join

LOAD Ninscription, Codeproduit as CodePromo Resident TAB;

pgrenier
Contributor III

Re: Remplir une colonne dans une table selon des règles

Bonjour,

À partir de votre exemple, je crois que vous pourriez arriver à votre objectif avec l'approche suivante:

TAB:

LOAD * Inline [

Codeproduit, Commande, Ninscription

PACK_REUSS, 111111, AAAAA

P5365, 111111, BBBBB

PACK_AVAN, 222222, CCCCC

P2589, 333333, DDDDD

P2589, 222222, EEEEE

];

PROMO:

LOAD * Inline [

Ninscription

AAAAA

BBBBB

CCCCC

DDDDD

EEEEE

];

// Ici, on commence par associer les numéros de commande aux numéros d'inscritiption. Le résultat sera une liste

// de tous les numéros d'inscription avec leurs commandes associées

Left Join (PROMO)

LOAD Ninscription, Commande as NoCommande

Resident TAB;

// Ici, nous allons associer les codes produit contenant la mention PACK aux numéros d'inscription en passant par

// les numéros de commande. Si vous désirez éliminer les lignes avec des codes produits à vide (voir le cas

// DDDDD dans votre exemple plus haut), remplacez simplement le terme "Left" par "Inner" ci-bas

Left Join (PROMO)

LOAD Commande as NoCommande, Codeproduit as CodePromo

Resident TAB

Where WildMatch(Codeproduit, '*PACK*');

// Le champ NoCommande n'est plus nécessaire, on le laisse tomber

DROP Field NoCommande;

Cordialement,

Philippe

flochi75
Contributor III

Re: Remplir une colonne dans une table selon des règles

Bonjour afguillard,

Pour ma part, je ferai une concaténation des 2 tables, puis un champ conditionnel tel que dans le script suivant, fait à partir de ton exemple (ainsi, tu fais ton script une fois pour toute, il ne change pas à chaque ajout de données dans ta table.. :

Capture.PNG

ce qui donne :

Capture2.PNG

flochi75
Contributor III

Re: Remplir une colonne dans une table selon des règles

oups, je n'avais pas vu qu'il y avait le même N° de commande pour plusieurs N°Inscription...

Philippe a la bonne solution !

Florent.

hodanazih
New Contributor III

Re: Remplir une colonne dans une table selon des règles

J'aurai utilisé un Left join.

Je charge les deux tables puis je mets :

Left Join (Inscriptions)

LOAD Ninscription, Codeproduit as CodePromo Resident Ecommerce;