Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problème where exists()

Bonjour,

Je ne comprend pas le fonctionnement de la fonction exists().

Je ne veux charger les données de Escalades que pour les tickets chargés dans Tickets.

En me basant sur la doc, j'ai fais ceci :

Tickets:

LOAD

  id as [Numéro de ticket],

.....

FROM tickets.qvd (qvd)

WHERE id >= 1410010000;

Escalades:

LOAD tickets_id as [Numéro de ticket],

...

FROM  escalades.qvd (qvd)

WHERE Exists(tickets_id, [Numéro de ticket]);

J'ai le message d'erreur

Champ introuvable - <Numéro de ticket>

Quelle est la bonne utilisation de exists() ?

MS

Labels (1)
1 Solution

Accepted Solutions
Not applicable
Author

Ma façon d'utiliser exists() vous a mal orienté sur ce que je voulais faire.

Cela m'a forcé à relire la doc et j'ai compris que je l'utilisais à l'envers.

Exists(A, B) est en fait : recherche toutes les valeurs possibles de B (table actuelle) dans A (autre table qui est déjà chargée).

Soit pour mon cas Exists([Numéro de ticket], tickets_id);

Et à première vue, ça fonctionne très bien.

Merci à vous

View solution in original post

3 Replies
Anonymous
Not applicable
Author

Bonjour

J'utilise très souvent cette fonction, mais avec une requête SQL ensuite, il faudra peut être adapter le script.

Elle doit être placée dans le LOAD, et la valeur de la table référente entre parenthèse.

Il faudra certainement - à confirmer par d'autres utilisateurs - renommer le champ 'id' de la table Tickets, en tickets_id, qui est stocké dans le QVD

ce qui donnerait :

Tickets: 

LOAD 

  tickets_id as [Numéro de ticket], 

..... 

FROM tickets.qvd (qvd) 

WHERE id >= 1410010000;


Escalade:

LOAD tickets_id as [Numéro de ticket],

     Where exists(tickets_id)

FROM  escalades.qvd (qvd);



jonathan_dau
Contributor III
Contributor III

Bonjour Martial,

Je pense que ton probleme provient du fait que tu cherches a utiliser la fonction Exists() en utilisant le champ precedemment charge dans la table Tickets, si je ne me trompe pas. Cela ne fonctionne evidemment pas.

D'autre part tu definis [Numero de Ticket] dans ta fonction. Qlikview pourra trouver tickets_id qui vient de la meme table, mais pas le champ renomme.

Quoiqu'il en soit je pense que tu peux realiser ce que tu veux en creant un Left Join entre tes deux tables. De cette maniere tu joindras ta deuxieme table a la premiere et tu limiteras les values a celles existant dans la premiere.

J'espere que c'est clair et que ca t'aidera.

Jon

Not applicable
Author

Ma façon d'utiliser exists() vous a mal orienté sur ce que je voulais faire.

Cela m'a forcé à relire la doc et j'ai compris que je l'utilisais à l'envers.

Exists(A, B) est en fait : recherche toutes les valeurs possibles de B (table actuelle) dans A (autre table qui est déjà chargée).

Soit pour mon cas Exists([Numéro de ticket], tickets_id);

Et à première vue, ça fonctionne très bien.

Merci à vous