SSAS计算会员

时间:2013-05-03 13:23:03

标签: ssas data-warehouse

我有一个名为FactSales的度量的多维数据集,每天都有条目。

我有三个维度,日期,客户和客户类型。

每个FactSales行都通过外键链接到日期和客户。客户通过外键链接到客户类型。

由此我可以在每个日期为每个客户吐出所有销售数据,这很棒。

我有多种类型:typeA,typeB,typeC,typeD,typeE。

我想要的是创建两个计算成员,这些成员具有由typeA为每个客户聚合的值,然后是所有其他类型。

目前我所拥有的是

 Case
    When IsEmpty( [Measures].[FactSales] ) or [Customer].[CustomerType].currentmember <> [Customer].[CustomerType].&[typeA]
    Then null
    ELSE ([Customer].[CustomerType].&[typeA], [Measures].[FactSales] )
END

但我认为这是错误的,我也不能使用同样的方法来获取除typeA之外的所有其他类型的值。当我把它推到更高的水平时,我也没有得到聚合。

有人可以帮忙吗?我可能没有充分解释自己,所以如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

为什么你要这样做?存储与单个事实无关的任何计算并不好,事实上表格行中的数据应仅对应于一个系统事实(订单,作业等),并且通过聚合,您将能够基于任何维度获取数据。 您当前的结构很好,您可以通过将多维数据集切割为客户类型维度来轻松进行计算。