SQL Clone
SQLServerCentral is supported by Redgate
 
Log in  ::  Register  ::  Not logged in
 
 
 


How do you filter a calculation by an existing hierarchy?


How do you filter a calculation by an existing hierarchy?

Author
Message
jason.freier
jason.freier
SSC Rookie
SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)

Group: General Forum Members
Points: 46 Visits: 168
Yeah, not quite there yet. A large part of it is that I am pretty new to MDX.

Pseudo code would be:

for every member of product
divide x by y
only if product.category = 2
then roll this up to an aggregate

The aggregate needs to be able to be sliced from the top of the dimension down to the different hierarchies in the dimension.
I know it's not much, but that's the best way I can describe it Sad
sneumersky
sneumersky
Hall of Fame
Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)

Group: General Forum Members
Points: 3174 Visits: 487
RE: sliced from the top of the dimension down to the different hierarchies

Do you mean "only roll up (x/y) from the leaf level of product if its ancestor is Product Category 2"?
jason.freier
jason.freier
SSC Rookie
SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)

Group: General Forum Members
Points: 46 Visits: 168
Haha yeah, sorry about that...ugh. The pseudo is not strong in this one.
sneumersky
sneumersky
Hall of Fame
Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)Hall of Fame (3.2K reputation)

Group: General Forum Members
Points: 3174 Visits: 487
NP.....

Does this calculated measure, after applying the division, rollup up along all other "non-product dimensions" in your cube by summing (x/y)?

If you don't hear from me the rest of the day, it is because my wife is going into labor with our first child :-)
jason.freier
jason.freier
SSC Rookie
SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)

Group: General Forum Members
Points: 46 Visits: 168
Hmm I don't think so. The division is there to properly calculate our forecast actuals and needs to be applied across the board. I had attempted to do this by doing that calculation at the leaf level, and then doing the sum at the top to aggregate it.
The filter portion is so that we are only performing this calculation when it is of a specific type.

And congratulations! I hope all is well Smile
jason.freier
jason.freier
SSC Rookie
SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)SSC Rookie (46 reputation)

Group: General Forum Members
Points: 46 Visits: 168
Unfortunately I still have not gotten this entirely figured out...
I have a little more understanding of how MDX is working, but obviously still not even an intermediate in it.

The problem is only calculating if the member is part of a specific hierarchy.
I have it so that it does that portion at the member level, and at when it subtotals, but run into issues with the following:

1. If a member exists with no value for both of the items being calculated, it works fine if the dimension is added to the pivot table itself.
If it is moved up to the report filter, it then does not show the subtotal value.

2. I cannot get the Grand Total to add up correctly as it just performs the division with the totals from the grand total row or the All member of the hierarchy.

The dimension in question is basically just a category, with a hierarchy built into it with similar naming that consists of two branches, legacy and rich.
I'm trying to only do the calculations when the member being calculated is in the rich category, and have the appropriate subtotal and grand total.
When putting the unit category into the report filter, it stops working if there are any values that have both measures as null.

I'm thinking I need to use nonempty() to resolve this, but am really struggling with this.

The current MDX that I have on one of the calculated measures looks as follows (and it does work when this dimension is in the pivot table body - I set the All member to null because it was frustrating LOL):


WITH Member [Measures].[TestCase2] as
IIF([Ad Unit].[Ad Unit].CurrentMember IS [Ad Unit].[Ad Unit].[All],
null,
DIVIDE([Measures].[Gross Revenue], [Measures].[OffersServed])*1000
)



This current version doesn't even have the filter in, because the other unit type currently never displays offers served. Eventually that will change, so I had previously been doing a check to see if:


IIF( ([Ad Unit].[Ad Unit].CurrentMember IS [Ad Unit].[Ad Unit].[Ad Unit Type].&[2]) OR ([Ad Unit].[Ad Unit].CurrentMember.PARENT IS [Ad Unit].[Ad Unit].[Ad Unit Type].&[2]),
DIVIDE([Measures].[Gross Revenue], [Measures].[OffersServed])*1000,
null
)


Go


Permissions

You can't post new topics.
You can't post topic replies.
You can't post new polls.
You can't post replies to polls.
You can't edit your own topics.
You can't delete your own topics.
You can't edit other topics.
You can't delete other topics.
You can't edit your own posts.
You can't edit other posts.
You can't delete your own posts.
You can't delete other posts.
You can't post events.
You can't edit your own events.
You can't edit other events.
You can't delete your own events.
You can't delete other events.
You can't send private messages.
You can't send emails.
You can read topics.
You can't vote in polls.
You can't upload attachments.
You can download attachments.
You can't post HTML code.
You can't edit HTML code.
You can't post IFCode.
You can't post JavaScript.
You can post emoticons.
You can't post or upload images.

Select a forum

































































































































































SQLServerCentral


Search