IIF
The MDX IIF function for Essbase performs a conditional test, and returns an appropriate numeric expression or set depending on whether the test evaluates to true or false.
Syntax
IIF ( search_condition, true_part, false_part )
Parameters
- search_condition
-
An expression to evaluate as true or false (see MDX Grammar Rules).
- true_part
-
A value_expression or a set. IIF returns this expression if the search condition evaluates to TRUE (something other than zero).
The value_expression can be a numeric value expression or a string value expression.
- false_part
-
A value_expression or a set. IIF returns this expression if the search condition evaluates to FALSE (zero).
The value_expression can be a numeric value expression or a string value expression.
Example 1
The company plans an expensive promotion of its caffeinated drinks. For the Caffeinated products only, the following query calculates a Revised Budget that is 110% of the regular budget:
WITH MEMBER
[Scenario].[Revised Budget]
AS
'IIF (
[Product].CurrentMember.Caffeinated,
Budget * 1.1, Budget
)'
SELECT
{[Scenario].[Budget], [Scenario].[Revised Budget]}
ON COLUMNS,
[Product].Levels(0).Members
ON ROWS
FROM Sample.Basic
WHERE ([Measures].[Sales], [Year].[Qtr3])
This query returns the grid:
Table 4-81 Output Grid from MDX Example
(axis) | Budget | Revised Budget |
---|---|---|
100-10 | 18650 | 20515 |
100-20 | 8910 | 9801 |
100-30 | 3370 | 3370 |
200-10 | 11060 | 12166 |
200-20 | 9680 | 10648 |
200-30 | 3880 | 3880 |
200-40 | 2660 | 2660 |
300-10 | 10600 | 11660 |
300-20 | 3760 | 4136 |
300-30 | 8280 | 9108 |
400-10 | 7750 | 7750 |
400-20 | 6800 | 6800 |
400-30 | 3290 | 3290 |
100-20 | 8910 | 8910 |
200-20 | 9680 | 9680 |
300-30 | 8280 | 8280 |
Example 2
The following query calculates a Revised Budget equaling Budget for caffeinated products, and Actual for non-caffeinated products:
WITH MEMBER
[Scenario].[Revised Budget]
AS
'StrToMbr(IIF (
[Product].CurrentMember.Caffeinated,
"Budget" , "Actual"
))'
SELECT
{[Scenario].[Budget], [Scenario].[Revised Budget]}
ON COLUMNS,
Children([100])
ON ROWS
FROM Sample.Basic
WHERE ([Measures].[Sales], [Year].[Qtr3])
This query returns the grid:
Table 4-82 Output Grid from MDX Example
(axis) | Budget | Revised Budget |
---|---|---|
Cola | 18650 | 18650 |
Diet Cola | 8910 | 8910 |
Caffeine Free Cola | 3370 | 3189 |