Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
slefranc
Partner - Contributor II
Partner - Contributor II

Aide sur expression set analysis

Bonjour,

J'ai besoin d'aide pour construire une expression set analysis

Voici le contexte :

- d'un coté, j'ai des produits en stock. Chaque produit possède son unique identifiant "p_id" et une référence "ref" (une référence peut être présente plusieurs fois en stock)

- de l'autre, j'enregistre des souhaits de la part de mes clients, chaque souhait est identifié de manière unique "w_id" et porte sur une référence "ref"

products:

LOAD * inline [p_id,ref

P1,REF A

P2,REF A

P3,REF B

P4,REF C

P5,REF C

];

wishes:

LOAD * inline [w_id,ref

W1,REF A

W2,REF A

W3,REF A

W4,REF A

W5,REF B

W6,REF D

];

Certains souhaits ne seront pas satisfaits parce que je n'ai pas assez de stock de la référence en question.

Mon problème est d'évaluer en une seule expression, le nombre total de souhaits qui peuvent être satisfaits, toutes références confondues. Dans l'exemple ci-dessus, il serait égal à 3 (2 pour la "REF A" et 1 pour la "REF B")

C'est certainement possible mais j'avoues ne pas savoir m'y prendre... (je sais faire un graphique dont la dimension serait la référence et qui me donne, référence par référence, le nombre de souhaits qui peuvent être satisfaits, et par extension, le nombre total recherché, mais mon but est d'avoir le résultat en une seule expression)

Merci de votre aide

6 Replies
Not applicable

Bonjour

Une proposition de réponse en pièce jointe (sans set analysis).

En espérant que cela puisse convenir.

Cordialement

slefranc
Partner - Contributor II
Partner - Contributor II
Author

Merci pour cette proposition... elle illustre  le fonctionnement souhaité, mais ma question portait réellement sur la construction d'une expression permettant d'arriver à ce résultat sans passer par un graphique intermédiaire...

Not applicable

Et il vous faut absolument une expression de type set analysis ou une résolution du problème par un script est-elle acceptable ?

slefranc
Partner - Contributor II
Partner - Contributor II
Author

Sauf erreur de ma part, je pense que le set analysis est la seule façon de voir évoluer le résultat en même temps que la sélection de l'utilisateur...

Not applicable

Je ne connais pas dans le détail votre contexte mais si la sélection de l'utilisateur se limite au choix de la référence, il est possible de faire quelque chose du genre dans le script:

tmp_results:
load
  ref,
  count(w_id) as w_count
resident wishes
group by ref;

join
load
  ref,
  count(p_id) as p_count
resident products
group by ref;

results:
load
  ref,
  if(IsNull(w_count), 0, w_count) as w_count,
  if(IsNull(p_count), 0, p_count) as p_count,
  if(IsNull(w_count), 0, if(IsNull(p_count), 0, if(w_count > p_count, p_count, w_count))) as Success
resident tmp_results;

drop tables tmp_results;

On peut alors ajouter une simple zone de texte avec l'expression = sum(Success)

L'exemple est dans la pièce jointe.

Personnellement, j'utilise les set analysis lorsqu'il n'y a vraiment pas d'autres solutions. La syntaxe est affreuse et la maintenance de ces expressions devient vite compliquée.

slefranc
Partner - Contributor II
Partner - Contributor II
Author

La solution de passer par le script m'était bien venue en tête, mais j'avais également identifiées les limites que vous indiquez.

Et par ailleurs, je souhaites aussi profiter de cet exemple pour améliorer ma connaissance des set analysis.

Quoiqu'il en soit, merci de vous être autant impliqué pour tenter de m'apporter une solution !