症状
请考虑以下情况:
-
在 Microsoft SQL Server 2012 Analysis Services (SSAS 2012)中运行使用筛选器的多维表达式(MDX)查询。
-
筛选器使用父/子维度上的多个成员。
-
父/子维度使用一元运算符。
在此方案中,返回值是维度中所有成员的所有子级的汇总值。 但是,返回值应为筛选条件的选定成员的聚合。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2012 SP1 的累积更新6 /en-us/help/2874879
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
更多信息
在 SSAS 2012 中, VisualTotals 可以完全支持具有一元运算符的层次结构上的 VisualTotals 函数。备注:
-
应用更新后,必须将新的VisualTotalsEnabledForUnaryOperatorsAndSubSelects server 属性设置为 1 以启用更改。 如果将此属性的值设置为另一个值,则无法启用更改,并且你将遇到以前的行为,在此情况下, VisualTotals 函数将返回层次结构中所有成员的总计,而不是所选成员的聚合。
-
启用更改后,仅支持 +、 -、 ~和权重一元运算符。 * 和 // 一元运算符不支持 VisualTotals函数。 当你在具有*或//一元运算符的层次结构上运行使用VisualTotals函数的 MDX 查询时,将引发验证错误。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。