SSAS计算成员

SSAS计算成员,ssas,data-warehouse,Ssas,Data Warehouse,我有一个称为FactSales的多维数据集,每天都有条目 我有三个维度,日期、客户和客户类型 每个FactSales行通过外键链接到日期和客户。客户通过外键链接到客户类型 从这一点上,我可以吐出每个客户在每个日期的所有销售数字,这是伟大的 我有多种类型:A型,B型,C型,B型,E型 但我想创建两个计算成员,分别按typeA和everyother类型为每个客户聚合值 我现在拥有的是 Case When IsEmpty( [Measures].[FactSales] ) or [Custo

我有一个称为FactSales的多维数据集,每天都有条目

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

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

从这一点上,我可以吐出每个客户在每个日期的所有销售数字,这是伟大的

我有多种类型:A型,B型,C型,B型,E型

但我想创建两个计算成员,分别按typeA和everyother类型为每个客户聚合值

我现在拥有的是

 Case
    When IsEmpty( [Measures].[FactSales] ) or [Customer].[CustomerType].currentmember <> [Customer].[CustomerType].&[typeA]
    Then null
    ELSE ([Customer].[CustomerType].&[typeA], [Measures].[FactSales] )
END
案例
当IsEmpty([Measures].[FactSales])或[Customer].[CustomerType]。当前成员[Customer].[CustomerType].&[typeA]
然后无效
ELSE([Customer].[CustomerType].&[typeA],[Measures].[FactSales])
结束
但我认为这是错误的,我也不能用同样的方法来获得除typeA之外的所有其他类型的值。当我将其汇总到更高的级别时,我也不会得到聚合


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

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

为什么要这样做?存储与单个事实无关的任何计算都是不好的,事实表行中的数据应该只对应于一个系统事实(订单、作业等),通过聚合,您将能够获得基于任何维度的数据。 您当前的结构很好,通过在客户类型维度上切片多维数据集,您可以轻松地获得计算结果