Hi,
I have a universe with 3 tables say A,B,C and table A is security table,and table B is a fact table and I have joined these three tables based on the Dealer column, and there is a join for tables
A----->B complex join where i used @variable(‘BOUSER’) in the join condition and B----->C is an equi join and for table B Dealer I have selected the security table in the object definition to cause the use of specific join in the generated query, so that i’m not using any objects from the security table A, and I’m using the objects from table B and C.
Now my question is does this scenario forms a fan trap.
I’m bit confused so Just for clarification, in the scenario i have mentioned, i’m dragging both dimension and measure objects from table B and measure objects from table C and condition objects from table B (i,e in query filter) in a single query, if I’m not wrong the results will inflate if you have measure objects from two tables in a single query, to avoid this I can use a seperate query for table C measure objects with condition objects from table B.
or the other work around if i want to use all the objects in a single query i need to set the cardinality and insert the contexts so to avoid the inflated results.
I understand that you have 3 tables A, B and C: A — B — C
What are the cardinalities of joins A — B and B — C?
Which tables are dimensions and measures in a query coming from?
Can you post an example of a query?
Hi Marek,
Thanks for your reply,
The cardinality for A------>B is M---->M
and B------>C is M------>M
I’m taking both dimensions and measures from table B and a measure from table C.
I’m not using any objects from table A. but since table B Dealer(primary Key) I have selected the security table in the object definition so that its automatically showing the join in the genrated sql. Is this mean that the objects are coming from 3 tables.
What is M---->M cardinality? Is it N:N or 1:N or 0:N?
In short, a fan trap occurs when you have a 1:N cardinality of a join between 2 tables and you have measures in a query from both of the tables (or at least from the table on the “1” end of the 1:N join).
Thanks for the information Marek,
Thats N---->N so if i use the measure objects from both tables which are in 1—>N cardinality, then the results will inflate here i can use the contexts and uncheck the Multiple sql statement for each measure in the universe or other work around is that i can take one more query with the objects coming from table C if no contexts are set and tick the multiple sql statement for each measure in universe…