Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
btheo
Contributor II
Contributor II

Applications de filtre par rapport à une formule

Bonjour à tous.

 

Je rencontre un problème assez bizarre concernant une expression d'une colonne que j'ai défini. J'ai à ma disposition un tableau auquel j'ai rajouté une dimension qui est défini par cette expression:

=(IF(peri = 'Occ' OR rdv = 'Sans' OR ISNULL(plage) OR plage > date
,if(date_terminee <= date_contrat,'Oui','Non')
,if(DATE(FLOOR(date_terminee)) <= DATE(FLOOR(date_rdv)),'Oui','Non')
))

Le problème intervient ensuite. Lorsque je veux filtrer sur 'Non' par exemple. Qlik va appliquer toutes ces conditions sans prendre en compte mon choix ce qui va me donner un résultat erroné. Je n'arrive pas à comprendre sa logique.

J'espère avoir été assez clair car je ne peux pas diffuser les données qui sont confidentielles. Merci de vos réponse

1 Solution

Accepted Solutions
btheo
Contributor II
Contributor II
Author

Bonjour,

 

Merci de ton aide, j'ai réussi à résoudre le problème en créant le champ directement dans la requête SQL en utilisant des CASE WHEN !

View solution in original post

15 Replies
Seyko
Partner - Creator
Partner - Creator

Bonjour,

As-tu pensé à créer cette dimension depuis ton script de chargement? Cela te permettra de mieux juger si les conditions de ton expression sont correctement définies ou non (en mettant en regard tous les champs concernés dans une table).

cordialement.

Excuse my english, i'm french!
btheo
Contributor II
Contributor II
Author

Merci de ta réponse. Je vois pas vraiment comment faire. Tu as un lien qui pourrait me guider ?

 

edit: J'ai bien créer la dimension. J'obtiens le même problème. Voici des images pour l'illustrer

Seyko
Partner - Creator
Partner - Creator

Petite question! Quelle méthode as-tu utilisé pour charger tes données dans ton application sous Qlik Sense?

cordialement.

Excuse my english, i'm french!
btheo
Contributor II
Contributor II
Author

Je charge mes données depuis cette feuille que tu montres avec le bouton charger les données en haut à droite. (J'ai edit mon poste précédent pour illustrer le cas)

Seyko
Partner - Creator
Partner - Creator

D'accord, donc dans l'espace de chargement des données tu crées un champ calculé dans le bloc d'instructions LOAD de tes données:

(IF(peri = 'Occ' OR rdv = 'Sans' OR ISNULL(plage) OR plage > date
,if(date_terminee <= date_contrat,'Oui','Non')
,if(DATE(FLOOR(date_terminee)) <= DATE(FLOOR(date_rdv)),'Oui','Non')
)) AS Cond,

cordialement. 

Excuse my english, i'm french!
btheo
Contributor II
Contributor II
Author

Ah non désolé j'avais mal compris, j'ai crée la dimension dans le mode édition de Qlik. Cependant, je n'ai pas de bloc LOAD car mes données viennent d'une requête SQL.

J'aimerais avoir un tableau qui contient une colonne avec les id et une autre qui affiche 'Oui' ou 'Non' en fonction des conditions. Merci de tes réponses

Seyko
Partner - Creator
Partner - Creator

Du coup, tu fais un LOAD...RESIDENT à la suite de ta requête SQL dans laquelle du créera ton nouveau champ. Tu devrais avoir un truc de ce genre:

tab1:
SQL SELECT 
	`Order ID`, 
	`Product ID`,
	`Unit Price` * Quantity * (1-Discount) as NetSales
FROM `Order Details`;

tab2:
LOAD
expression_champ_calc AS Cond,
*
RESIDENT tab1;

DROP TABLE tab1;

 

Excuse my english, i'm french!
btheo
Contributor II
Contributor II
Author

Bonjour,

 

Merci de ton aide, j'ai réussi à résoudre le problème en créant le champ directement dans la requête SQL en utilisant des CASE WHEN !

Seyko
Partner - Creator
Partner - Creator

N'oublie de clôturer ton post pour les autres 😊.

cordialement.

Excuse my english, i'm french!