Parent-Child 维度中的一元运算符

在Microsoft SQL Server Analysis Services 中包含父子关系的维度中,指定一元(或自定义汇总)运算符列,该列确定父属性的所有非计算成员的自定义汇总。 每当计算父成员的值时,一元运算符都会应用于成员。 父属性上的 UnaryOperatorColumnUsage=Parent) 指定数据源视图中包含一元运算符的表的列。 此列中存储的自定义汇总运算符的值将应用于属性的每个成员。

可以在数据源视图中的维度表上创建并指定一个命名计算,将其作为一元运算符列。 最简单的表达式(如“+”)为所有成员返回相同的运算符。 但是,只要它为每个成员返回一个运算符,就可以使用任何表达式。

可以在父属性上手动更改 UnaryOperatorColumn 属性设置,或使用商业智能向导的“定义自定义聚合”增强功能替换与维度成员关联的默认聚合。 有关如何使用商业智能向导执行此配置的详细信息,请参阅 向维度添加自定义聚合

父属性上的 UnaryOperatorColumn 属性的默认设置为 (none),这会禁用自定义汇总运算符。 下表列出了一元运算符,并描述了它们在应用于级别时的行为方式。

一元运算符 DESCRIPTION
+ (加号) 该成员的值被加入到在该成员之前出现的同级成员的总值中。 如果未为属性定义一元运算符列,则此运算符是默认运算符。
- (减号) 成员的值从其前面出现的同级成员的总值中减去。
*(星号) 在乘以该成员之前出现的同级成员的聚合值后,计算该成员的值。
/ (斜杠标记) 成员的值除以其之前同级成员的总值。
~ (波形符) 成员的值将被忽略。

表中未找到的空白值和任何其他值都被视为与加号 (+) 一元运算符相同。 没有运算符优先级,因此一元运算符列中存储的成员顺序决定了计算顺序。 若要更改计算顺序,请创建新属性,将其 Type 属性设置为 Sequence,然后为其 源列 属性中的计算顺序分配对应于计算顺序的序列号。 还必须按该属性对属性的成员进行排序。 有关如何使用商业智能向导对属性的成员进行排序的信息,请参阅 “定义维度的排序”。

可以使用 UnaryOperatorColumn 属性指定一个命名计算,该计算将一元运算符作为属性的所有成员的文本字符返回。 可以像在命名计算中键入字面字符(例如 '*')一样简单。 这将把属性的所有成员的默认运算符加号 (+) 替换为乘法运算符星号 (*)。 有关详细信息,请参阅数据源视图中的“定义命名计算”(Analysis Services)。

在维度设计器的 “浏览器 ”选项卡中,可以查看层次结构中每个成员旁边的一元运算符。 在使用可写的维度时,你还可以更改一元运算符。 如果未启用维度写入,则必须使用工具直接修改数据源。

另请参阅

维度属性参考
Parent-Child 维度中的自定义汇总运算符
在维度设计器中启动商业智能向导