ssas - MDX 计算成员并设置减法

标签 ssas mdx

这是 Adventure Works 的一个简单示例:

with 

member test1 as sum([Measures].[Internet Sales Amount]) 
               - [Customer].[Customer].&[28187]

member test2 as sum([Measures].[Internet Sales Amount]) 
                - sum([Customer].[Customer].&[28187],[Measures].[Internet Sales Amount])

member test3 as sum
                (
                    {[Customer].[Customer].children - [Customer].[Customer].&[28187]},
                    [Measures].[Internet Sales Amount]
                ) 

select {test1, test2, test3} on 0
from [Adventure Works]

结果几乎相同,除了“test1”具有非货币类型格式

问题:

  1. “test1”calc-member:如何从“sum”的数值结果中减去“Customer”成员表达式?这看起来不合逻辑而且令人心碎。我期望算术减法,集合减法,但不是算术减法的成员...

  2. 所有 (test1,test2,test3) 计算成员在逻辑上和“性能上”是否相等?如果不是,“test1”成员的正确显式形式是什么?看起来“test2”在大多数情况下会表现得更好,因为“test3”集合减法可能会导致非常大的集合。

最佳答案

“test1”与“test2”相同。

正确的显式形式是

member test as ([Measures].[Internet Sales Amount])
                - ([Measures].[Internet Sales Amount], [Customer].[Customer].&[28187])

关于ssas - MDX 计算成员并设置减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15386395/

相关文章:

sql-server - 具有 Kerberos 委派的 SSAS 出现连接超时错误

jdbc - 使用 JDBC 通过 XMLA 连接

mdx - 在 MDX 中添加复杂度量

ssas - 日期维度已停止在 OLAP 多维数据集中处理

ssas - MDX - 需要 3rd + 维度示例

azure - 用于区分 Azure Analysis Services 和 SQL Server Analysis Services 的查询

sql - 使用 MDX 期间的最后一个非空子项

active-directory - SSAS 角色 - OR 而不是 AND

sql-server - 如何在 MDX 中基于维度属性定义计算度量?

sql-server-2008-r2 - MDX 查询不接受日期值