Recent PostsRecent Posts Popular TopicsPopular Topics
 Home Search Members Calendar Who's On

 How do you filter a calculation by an existing hierarchy? Rate Topic Display Mode Topic Options
Author
 Message
 Posted Friday, March 21, 2014 10:10 PM
 Grasshopper Group: General Forum Members Last Login: Monday, November 10, 2014 11:11 AM Points: 16, Visits: 146
 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 productdivide x by y only if product.category = 2then roll this up to an aggregateThe 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
Post #1553733
 Posted Monday, March 24, 2014 7:54 AM
 SSCrazy Group: General Forum Members Last Login: Monday, July 28, 2014 7:12 PM Points: 2,148, 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"?
Post #1554031
 Posted Monday, March 24, 2014 7:59 AM
 Grasshopper Group: General Forum Members Last Login: Monday, November 10, 2014 11:11 AM Points: 16, Visits: 146
 Haha yeah, sorry about that...ugh. The pseudo is not strong in this one.
Post #1554032
 Posted Monday, March 24, 2014 8:07 AM
 SSCrazy Group: General Forum Members Last Login: Monday, July 28, 2014 7:12 PM Points: 2,148, 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
Post #1554037
 Posted Tuesday, March 25, 2014 9:19 AM
 Grasshopper Group: General Forum Members Last Login: Monday, November 10, 2014 11:11 AM Points: 16, Visits: 146
 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 :)
Post #1554537
 Posted Monday, August 11, 2014 1:41 PM
 Grasshopper Group: General Forum Members Last Login: Monday, November 10, 2014 11:11 AM Points: 16, Visits: 146
 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)`
Post #1602038

 Permissions