sum calculated member containing iif statement -
08-24-2006
, 04:38 AM
Hi everyone, I hope you can help.
I have a calculated member in my cube called Score that contains the
following MDX for the value:
[Measures].[Weight] * Iif((100 * [Measures].[OK Cases] /
[Measures].[Relevant Cases]) < [Measures].[Level1], [Measures].[Multiplier
Level0], Iif((100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) >=
[Measures].[Level1] AND (100 * [Measures].[OK Cases] / [Measures].[Relevant
Cases]) < [Measures].[Level2], [Measures].[Multiplier Level1], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level2]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level3], [Measures].[Multiplier Level2], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level3]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level4], [Measures].[Multiplier Level3], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level4]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level5], [Measures].[Multiplier Level4], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level5],
[Measures].[Multiplier Level5], NULL))))))
Explanation
If the percentage of OK Cases is less than Level0, the Score is the Weight
multiplied by the Level 0 Multiplier (always 0).
If the percentage of OK Cases is between Level0 and Level1, the Score is the
Weight multiplied by the Level 1 Multiplier (always 2)...
When the data is aggregated, I want the Score column to display the sum of
all the scores and not perform the calculation of the sum of the values,
which is what I think it's doing.
I thought it might be as simple as putting all of this inside a sum:
SUM(
[Measures].[Weight] * Iif((100 * [Measures].[OK Cases] /
[Measures].[Relevant Cases]) < [Measures].[Level1], [Measures].[Multiplier
Level0], Iif((100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) >=
[Measures].[Level1] AND (100 * [Measures].[OK Cases] / [Measures].[Relevant
Cases]) < [Measures].[Level2], [Measures].[Multiplier Level1], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level2]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level3], [Measures].[Multiplier Level2], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level3]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level4], [Measures].[Multiplier Level3], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level4]
AND (100 * [Measures].[OK Cases] / [Measures].[Relevant Cases]) <
[Measures].[Level5], [Measures].[Multiplier Level4], Iif((100 *
[Measures].[OK Cases] / [Measures].[Relevant Cases]) >= [Measures].[Level5],
[Measures].[Multiplier Level5], NULL))))))
)
But this doesn't work. Can anyone help?
Thanks. Dan. |