Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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);
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
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