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
Bonjour
Une proposition de réponse en pièce jointe (sans set analysis).
En espérant que cela puisse convenir.
Cordialement
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...
Et il vous faut absolument une expression de type set analysis ou une résolution du problème par un script est-elle acceptable ?
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...
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.
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 !