dbTalk Databases Forums  

sum calculated member containing iif statement

microsoft.public.sqlserver.olap microsoft.public.sqlserver.olap


Discuss sum calculated member containing iif statement in the microsoft.public.sqlserver.olap forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Daniel
 
Posts: n/a

Default 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.



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.