Using Custom Rollup Operators

Analysis Services

Analysis Services

Using Custom Rollup Operators

Custom rollup operators provide a simple way to control how member values are rolled up to their parent's values. When custom rollup operators are assigned to the name of a column, either when creating them as an optional feature of new parent-child dimensions in Dimension Wizard or adding them to existing dimensions in Dimension Editor or Cube Editor, the contents of that column are used as the custom rollup operator for the member. This custom rollup operator is applied to the member when evaluating the value of the member's parents.

In Dimension Editor, values for the custom rollup operators are stored in the Unary Operator Column property of the level and are applied to each member.

Custom rollup operators provide similar but simplified functionality of custom rollup formulas. In comparison to custom rollup formulas, which use Multidimensional Expressions (MDX) expressions to determine how the members are rolled up, the custom rollup operator uses simple math operators to determine how the value of a member affects the parent. However, the value of the custom rollup operator is unique for each level member, while a custom rollup formula applies to all level members.

In relation to a dimension's custom member formulas, custom member formulas of the preceding level override a level's custom rollup operators. However, the custom rollup operators of a level override the custom rollup expression of the previous level.

The following table lists available custom rollup operators and describes how they behave when they are applied to a level.

Custom rollup operator Description
+ The value of the member is added to the aggregate value of the preceding sibling members.
- The value of the member is subtracted from the aggregate value of the preceding sibling members.
* The value of the member is multiplied by the aggregate value of the preceding sibling members.
/ The value of the member is divided by the aggregate value of the preceding sibling members.
~ The value of the member is ignored.

Note  Blank values and any other values not found in the table are treated as the plus sign (+) unary operator. There is no operator precedence, so the order of members as stored in the unary operator column determines the order of evaluation. To change the order of evaluation, create a new member property, set its Type property to Sequence, and assign sequence numbers corresponding to the order of evaluation in its Source Column property.

Besides being able to create new custom rollups for parent-child dimensions in the Dimension Wizard, you can create custom rollups for existing shared or private dimensions.

To create a custom rollup operator for a shared dimension