温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ssas - MDX Scope to get denominator
mdx multidimensional-cube ssas

ssas - MDX范围获得分母

发布于 2020-07-08 19:37:12

我有一个SSAS多维数据集,并且我正在尝试通过使用范围语句来计算查询的分母。

我正在尝试为所有商店的所有销售额的总价值分配度量“ Total SalesCumulative”。我希望这保持为总值,并且不要在数据透视表中被切成薄片。称为“总销售额”的度量汇总了每个商店的所有销售额。我已经深入到下面,但这只是返回每个商店的值,并显示与Total Sales相同的值。

 SCOPE ([Measures].[Total SalesCumulative],[Dim Store].[Store Name].members);
 THIS = ([Dim Store].[Store Name].[All],[Measures].[Total Sales]);
 END SCOPE;

有没有人有任何建议我可以对此进行修改?

查看更多

提问者
Basil
被浏览
0
vldmrrdjcc 2020-04-14 01:23

我已经在Adventure Works数据库中检查了您的公式,这似乎是正确的。可以肯定的是,您可以像下面的SSMS中那样检查查询所得到的结果(无需进行范围分配):

with member measures.[All Order Count] as
([Measures].[Internet Order Count],[Product].[Model Name].[All Products] ) 

select {[Measures].[Internet Order Count] ,measures.[All Order Count] } on 0,
[Product].[Model Name].members on 1
from [Adventure Works]

在此处输入图片说明

  1. 进行更改后,您是否尝试过在运行查询之前清除现金?

  2. 其次,脚本中可能还有其他范围分配,这会影响相同的度量和维数并覆盖您的公式,因为最后一个范围分配获胜。

尝试将FREEZE(THIS)添加到您的作用域语句中只是为了检查它是否会更改数字:

SCOPE ([Measures].[Internet Order Count],[Product].[Model Name].members);
 THIS = ([Product].[Model Name].[All Products] , [Measures].[Internet Order Count]) ;
FREEZE(THIS);
 END SCOPE;