KB2800284 - 修复:运行包含 SSAS 2008 R2 或 SSAS 2012 中计算成员中使用的聚合函数的 MDX 查询时,结果不正确

应用对象
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Developer SQL Server 2012 Analysis Services SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Microsoft将 Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) 修补程序分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含上一个SQL Server 2008 R2 Service Pack 2 修补程序版本中包含的所有修补程序和所有安全修补程序。

症状

假设在满足以下条件时 (,在 Microsoft SQL Server 2008 R2 Analysis Services (SSAS 2008) 或 Microsoft SQL Server 2012 Analysis Services (SSAS 2012) 中运行多维表达式 (MDX) 查询:

  • MDX 查询具有一个 Aggregate 函数,该函数用于 WHERE 子句中的计算成员。
  • Aggregate 函数使用 Dim.Hier 层次结构的多个成员。
  • 有一个范围语句会影响 Aggregate 函数中不存在的 Dim.Hier 层次结构的成员。
  • Dim 维度是父/子维度。

在这种情况下,scope 语句会更改 Aggregate 函数的结果。 这会导致 MDX 查询返回不正确的结果。

注意:

  • 可以通过将 EXISTING 关键字 (keyword) 添加到 Aggregate 函数的 参数来检查此问题。
  • 使用 CUBESET 函数) 将数据透视表对象转换为公式 (时,Excel 会经常进行这种形式的 MDX 查询。

        
      

解决方法

此问题首先在以下SQL Server累积更新中得到解决。

SQL Server 2012 /zh-cn/help/2844205 的累积更新 8

SQL Server 2012 SP1 /help/2833645 的累积更新 4

SQL Server 2008 R2 SP2 /help/2797460 的累积更新 5

关于 SQL Server 的累积更新

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

      

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

详细信息

有关聚合函数 (MDX) 的详细信息,请转到以下 MSDN 网站:

有关聚合函数的常规信息