If you are unable to create a new account, please email support@bspsoftware.com

 

Top Count function in Dimensional Reporting not retrieving required data

Started by Manu0521, 21 Mar 2014 11:08:31 AM

Previous topic - Next topic

Manu0521

Hi,

I am using a cross tab with customers in rows, revenue in measure and ytd change in column.

I used topCount ([Customers],5,[YTD Change]) in the slicer , but I dont see any results in my cross tab. It shows all customers with empty cells.

Can anyone tell me what am I doing wrong in this ?

Thnaks

Manu0521

I used the function in the data item and it worked. What does slicer exactly , why it dint filter and give the result.
Thanks,

navissar

Hi,
First of all I'm glad you resolved your issue.
In order to work well with dimensional data sources, you need to learn to think in dimensional. Slicers aren't detail filters.
If you need to filter the set you're displaying on rows/columns, use the filtering function directly in the data item. Unlike relational, in dimensional the metadata (The names of members, dimensions and so on) already has the names of all members, so we can easily just select these elements. Consider the following scenario, which is a simplified, static version of your scenario:
I want to only see 5 customers that I choose: Mia, Anna, Jessica, Michele and Robert. On relational, my metadata will contain a field (Or a column) of "Customer name", but I cannot know without querying the exact name. In this case, I will filter the entire query: select customer_name from dim_cust where customer_name in ("Mia","Anna","Jessica","Michele","Robert").
On dimensional, each category creates a member, so metadata already contains all the names. Also, I can select sets for rows/columns. So I can just set the data item to "Set("Mia","Anna","Jessica","Michele","Robert").
In your case, the set is dynamic. In relational, you'd have to use a rank function to achieve this. On dimensional, you filter each set you see, so you only pinpoint the members you want.
In dimensional, there's no relations between entities. If you're going to display data about customers and products, and a product exists which was never bought by any customer, you won't see it (Because of inner joins) on relational. On dimensional, there are no joins, so the query will return everything that there is on the sets defined to it. Which means if you asked to see the customers level, you will see all customers (Unless you filter that data item, like you did). The slicer will remove the data for any product not in the list, thus you will see all products, but not their data.
Hope this clarifies things.
A slicer filters the measure displayed for all categories in rows/columns, which is why we often use it on dimensions not included in the query already.

Manu0521