Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

simplify SetAnalysis expression

Hi, i have this "huge" and specialy slowly expression:

if(count({<PruebaFami={"Tiene"}>} TipoAviso)<3,
if(count({1<Terminal>} Terminal)=1,count({<PruebaFami={"Tiene"}>} TipoAviso),
if(count({<PruebaFami={"Tiene"}>} TipoAviso)<2,count({<PruebaFami={"Tiene"}>} TipoAviso))))

When accept it, qlikview cannot show the results, the system hangs and i need to close the Qv.exe process using Ctrl-Alt-Sup.

What i need is to get the count of TipoAviso that have every Terminal, but with some conditions:
- Firstly i only need to show results if count of TipoAviso < 3 and PruebaFami = "Tiene".
- Then if the count of Terminal (Terminals with same value) = 1, must appear the count results of each Terminal.
- Otherwise (when the count of Terminals <> 1, what means it >1), for these cases i only need the results when the count of TipoAviso = "Tiene" < 2.

how to do it simpler and effective?

I hope your help, please.
Regards

2 Replies
Not applicable
Author

I have added and example to help find the solution.

Regards

jonathandienst
Partner - Champion III
Partner - Champion III

Hi

Firstly, I would check the data structure. If PreubaFami, TipoAviso and/or Terminal (and indeed the chart/table dimensions) are in large tables that are not linked to each other, this would result in a memory-gobbling cross join, which could be your problem.

If that is not the case, you might get some joy by defining a variable in the script, for example:

Set vCountTiene = count({<PruebaFami={"Tiene"}>} TipoAviso)

and then using $(vCountTiene) in your expression instead, like:

if($(vCountTiene) < 3,
if(count({1<Terminal>} Terminal)=1, $(vCountTiene),
if($(vCountTiene) < 2, $(vCountTiene))))

I have seen some discussions that imply that QV does some caching of expressions in variables. It was in a different context and may or may not work here.

Just some thoughts which I hope are helpful.

Jonathan

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein