我有一个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;
有没有人有任何建议我可以对此进行修改?
我已经在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]
进行更改后,您是否尝试过在运行查询之前清除现金?
其次,脚本中可能还有其他范围分配,这会影响相同的度量和维数并覆盖您的公式,因为最后一个范围分配获胜。
尝试将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;