维度在其他维度的上下文中区分SSAS

时间:2015-04-13 15:57:47

标签: sql-server-2012 ssas mdx olap

我有这个MDX;

CREATE MEMBER CURRENTCUBE.[Measures].DistinctOrderCount<br/>
AS 
  DistinctCount([Order].[Order Id].[Order Id] - [Order].[Order Id].[1]),<br/>
FORMAT_STRING = "#,##0;-#,##0", 
VISIBLE = 1,  ASSOCIATED_MEASURE_GROUP = 'Fact Sales';

我试图在我的事实表中的其他维度的上下文中执行不同的订单(订单ID = 1除外)。例如,昏暗的客户,昏暗的城市,昏暗的状态等不同的订单数量,但我无法实现这一点。当我在报表上查看我的度量时,我会得到不同的订单维度计数,即在所有客户行上显示的维度。

1 个答案:

答案 0 :(得分:1)

这是解决这个问题的最好方法,我对结果感到满意。希望这可以帮助别人。我们的想法是,使用聚合类型 Distinct Count 创建一个多维数据集度量,并在要非常依赖的列上设置列绑定。然后使用下面的MDX从您的非重复计数中过滤掉虚拟订单ID。

create member currentcube.[Measures].OrderCount<br/>
as<br/>
distinctcount
(

    existing 
    CROSSJOIN
             (
              Except([Orders].[Order Id].[Order Id], [Orders].[Order Id].&[1]), 
              [Measures].[Order Count]
             )

),<br/>
FORMAT_STRING = "#,##0;-#,##0", 
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP='Order Count';