2

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」メンバーの正しい明示的な形式は何ですか? 「test3」のセット減算は非常に巨大なセットになる可能性があるため、ほとんどの場合、「test2」のパフォーマンスが向上するようです。

4

1 に答える 1

2

「test1」は「test2」と同じです。

正しい明示的な形式は

member test as ([Measures].[Internet Sales Amount])
                - ([Measures].[Internet Sales Amount], [Customer].[Customer].&[28187])
于 2013-03-14T13:17:01.140 に答える