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: 
WDou1
Contributor
Contributor

Valeur sans correspondance entre deux tables

Bonjour,

J'ai deux tables.

L'une contient l'ensemble des clients ayant commandé durant la periode 0-24 mois (Table Fichier client)

L'autre contient les clients ayant réalisé des participations aux jeux sans commande. (Table participationJeu)

Les deux tables sont liées par le code client

Je cherche à connaître les personnes ayant fait des participations sans commande mais n'étant pas dans la table des clients ayant commandé durant la periode 0-24 mois.

Soit retrouver les valeurs de la table 2 qu'on ne retrouve pas dans la table 1

 

Merci beaucoup.

1 Solution

Accepted Solutions
brunobertels
Master
Master

Bonjour 

Ci dessous un exemple 

Clients_Temp:
Load Client as Client_Base;
Load * inline [
Client|ID|Ventes
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');

Game:
Load * inline [
Client|ID|Game
Bill|001|Game1
Mary|004|Game2
Steve|003|Game2
Lucy|005|Game1
Lucy|005|Game3
John|002|Game3
] (delimiter is '|') where not Exists (Client_Base,Client);
drop table Clients_Temp;

Clients:
Load * inline [
Nom|ID|Ventes
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');

 

je charge les clients dans une table temporaire avec un préceding load pour changer le nom de la Clé de jointure ( ICI le nom du client ; çà servira si un joueur a fait plusieurs jeux et que tu veuilles garder chaque ligne ) 

je charge la base jeux

 avec un condition where not exist 

je drop la base client temporaire 

je recharge la base client 

 

tu obtiens deux tables :

clients : avec tous tes clients 

Game : avec que les joueurs non présents dans la base client 

brunobertels_0-1666696248251.png

brunobertels_1-1666696358489.png

 

View solution in original post

3 Replies
brunobertels
Master
Master

Bonjour 

Ci dessous un exemple 

Clients_Temp:
Load Client as Client_Base;
Load * inline [
Client|ID|Ventes
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');

Game:
Load * inline [
Client|ID|Game
Bill|001|Game1
Mary|004|Game2
Steve|003|Game2
Lucy|005|Game1
Lucy|005|Game3
John|002|Game3
] (delimiter is '|') where not Exists (Client_Base,Client);
drop table Clients_Temp;

Clients:
Load * inline [
Nom|ID|Ventes
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');

 

je charge les clients dans une table temporaire avec un préceding load pour changer le nom de la Clé de jointure ( ICI le nom du client ; çà servira si un joueur a fait plusieurs jeux et que tu veuilles garder chaque ligne ) 

je charge la base jeux

 avec un condition where not exist 

je drop la base client temporaire 

je recharge la base client 

 

tu obtiens deux tables :

clients : avec tous tes clients 

Game : avec que les joueurs non présents dans la base client 

brunobertels_0-1666696248251.png

brunobertels_1-1666696358489.png

 

WDou1
Contributor
Contributor
Author

Je te remercie pour t'as réponse ! 

Une dernière petite question, le exist fonctionne t-il pour chercher une correspondance selon deux champs ? 

Je m'explique imaginons que j'ai une table avec mes clients et la participation sur mon jeu ainsi qu'une table contenant les clients et les jeux qu'on a envoyé,

est-ce possible d'utiliser le exist pour savoir si les clients ont bien jouer sur le jeu envoyé ?

 

Cordialement, 

 

brunobertels
Master
Master

Bonjour 

Oui je pense que c'est possible en utilisant le second argument de la fonction exists 

ci dessous un exemple : https://community.qlik.com/t5/QlikView-App-Dev/Multiple-Field-Exist-Cheking-if-values-exist-in-diffe...