SSAS计算的维度成员

时间:2014-08-22 16:23:06

标签: ssas

我尝试将计算成员添加到多维数据集

目前在我的报告中,我有类似的内容

dimension value
a         5
b         10

我尝试添加一个计算成员x(= a / b)

dimension value
a         5
b         10
x         0.5

这适用于管理工作室:

    with member [dimension].[hierarchy].[x] as
    ( [Measures].[Value], [dimension].[hierarchy].[a])/
    ([Measures].[Value], [dimension].[hierarchy].[b])

    select [Measures].[Value]
    on 0
    ,
    {
    (
    [dimension].[hierarchy].[a]
    ,[dimension].[hierarchy].[b]
    ,[dimension].[hierarchy].[x])
    } on 1
    from [cube]
    where { [Date].[Date].&[20140821]}

但是在立方体计算的成员中,我尝试将计算出的成员分配给[维度]。[层次结构],在浏览器中,我可以看到[维度]下的x。[层次结构]和'所有&# 39;会员。但是当我右键单击它时,只有将它添加到子多维数据集的选项,但我希望将它添加到行区域。

我知道我可以创建计算度量而不是计算维度,所以它将是这样的:

dimension value x
a         5     0.5
b         10    0.5

但它让用户感到困惑。

我是新手,这是可行的(计算维度成员)?怎么样?

1 个答案:

答案 0 :(得分:0)

晚了几年才来这里!

但是,这是处理财务数据时的常见要求。通常,对于损益报告,需要将一组指标添加到同一维表中,以便以正确的顺序显示行,尤其是在使用SSRS的情况下。指标通常是诸如“平均每周费用”之类的比率。

您要计算比率。一种非常有效的方法是在SASS多维数据集计算中使用SCOPE语句。 Scope语句可以针对一个维度值有效地注入一个计算值,该维度值将根据您随后编写的任何MDX查询中的时间维度自动重新计算。

例如,给定月份的a / b值将与给定季度的a / b值不同。当然,即使X最初没有值,它也必须存在于维度中。我们的范围声明看起来像这样:

<option *ngFor="let opt of fields" [value]="opt.value">{{opt.name}}</option>

虽然根据基础相关事实表为整个维度定义了[Measure]。[Value],但我们仅更改与x相关联的度量值,并考虑了b可能为零的可能性。