I am trying to write an MDX calculation that calculates the average policy premium across multiple policies. It works fine when selecting one carrier. However, the avg function is basically based on the count and sum functions (at least that is what I read). When you select one carrier the average is based on the following:
Policy A: 2000
Policy B: 1000
Policy C: 3000
Average: 2000
Lets say I multi-select another carrier and the second carrier has the exact same amounts for the policies
the total policy amounts would be :
Policy A: 4000
Policy B: 2000
Policy C: 6000
Average: 2000
The summation (12000) should be divided by the number of policies * the number of carriers (6).
However, I wind up getting 4000 as my average. Any thoughts?
Here is the MDX I am using:
Total Policy Premiums:
sum(existing [POLICY].[POLICY #],([POLICY].[VEHICLE #].&[1],[measures].[TOTAL POLICY PREM]))
Avg:
avg(existing [POLICY].[Policy].children,[Measures].[Total Policy Premiums])
Any insight would be greatly appreciated.
You could do this for example:
AVG ( Existing CrossJoin( [Carrier].[Carrier].members, [Policy].[Policy #].members ),
[Measures].[TOTAL POLICY PREM] )
Average can be computed in multiple ways, so you need to think through on what exactly you are computing. In the MDX above, combinations of carrier and policy that do not exist or are null will not be included in the computation.
No comments:
Post a Comment