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

Announcements
Posting on Qlik Community is temporarily paused. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Set Analysis in Table

Hi

I've a table containing Fund, Fund Name, Fund% and Benchmark% columns.

Data Relationships:

Fund consists of securities,

Securities are covered by an analyst,

Funds have a distinct benchmark associated to it,

Benchmark consists of securities.

Problem:

--> Based on the user selected analyst on the front end, display Fund% for each of the funds in a table.

--> Each row in the table displays a fund, Fund % and Benchmark %

--> Fund % is the aggregate total % of all those securities that are part of the fund as and at the same time covered by the selected analyst (Both conditions have to satisfy).

--> Benchmark% is the aggregate total % of all the securities that are part of the benchmark corresponding to the fund and at the same time covered by the selected analyst (Both conditions have to satisfy).

I am able to get the Fund% column computed correctly both separately in a text box and also in the table. However, for the benchmark, while it is working fine in a text box I breaks when I put the same code in the table!

Following is the set analysis used:

For Fund%

Sum({1 < parent_clone_type={'Parent'},

               account_type_trp=-{'INDEX', 'MODEL'},

               [rating_history.contact_id] = {$(=[rating_history.contact_id])},

               effective_date={"$(=date(max(effective_date),'YYYY-MM-DD'))"},

              [rating_history.end_date] = {'3999-12-31'}

         >}

contrib_mktval_weight)

For Benchmark%

Sum({1 < account_id = {'8849'},

                [rating_history.contact_id] = {$(=[rating_history.contact_id])},

                effective_date={"$(=date(max(effective_date),'YYYY-MM-DD'))"},

                [rating_history.end_date] = {'3999-12-31'}

         >}

contrib_mktval_weight)

Any idea what I am going wrong?

Thanks

14 Replies
jagan
Partner - Champion III
Partner - Champion III

HI,

Try like this

Sum({1 <

                [rating_history.contact_id] = {$(=[rating_history.contact_id])},

                effective_date={"$(=date(max(effective_date),'YYYY-MM-DD'))"},

                [rating_history.end_date] = {'3999-12-31'}

         >}

TOTAL <Fund> contrib_mktval_weight)

Regards,

Jagan.

paul_scotchford
Specialist
Specialist

Why is this required [rating_history.contact_id] = {$(=[rating_history.contact_id])}  ?

Seems to be SELF = SELF , just curious, I really would like to look at the .qvf and model .

Not applicable
Author

Hi Paul

rating_history_contact_id represents a unique identifier for an Analyst.

[rating_history.contact_id] = {$(=[rating_history.contact_id])} This line of code is used to pass the analyst code that the use selects on the front end.

Not applicable
Author

Hi Jagan

Tried TOTAL <Fund> contrib_mktval_weight

unfortunately it didn't cut it.

The issue is retrieving correct benchmark id corresponding to each fund and assigning it to account_id in the code

so basically coding in a way that it reads benchmark_Id for the row dimension. i.e. in benchmark% it should retrieve the benchmark% corresponding to the fund in each row.

paul_scotchford
Specialist
Specialist

Is selection of the Analyst is from a Filter object (not that it matters where selection happens)? Because qlik uses an associative model I would have thought the id = id line is not required in the predicate as the Set Analysis would work across the selected dimension(s) , of course the {1} negates the user selection. A long shot without seeing the model et al, but try ...

Sum({$ <  account_id = {'8849'},

                effective_date={"$(=date(max(effective_date),'YYYY-MM-DD'))"},

                [rating_history.end_date] = {'3999-12-31'}

         >}

contrib_mktval_weight)