在筛选器窗格中拖动的尺寸不会切割范围度量

时间:2015-11-13 04:26:09

标签: ssas mdx

度量'X'从不同的事实表中获取其值。让我们考虑时间(财政周,月)维度和渠道维度。对于这两个维度中不同的属性组合,X将从不同的表中获取其值,如下所示:

  1. 周+频道 - 从表FactTrafficByWeekChannel获取
  2. 周 - 来自表FactTrafficByWeek
  3. 月+频道 - 从表FactTrafficByMonthChannel获取
  4. 月 - 从表FactTrafficByMonth获取
  5. 为了达到这个目的,我将这些事实添加到了多维数据集中,并创建了一个计算的度量和范围脚本来覆盖范围。以下是范围脚本声明:`

    CALCULATE; 
    CREATE MEMBER CURRENTCUBE.[Measures].[Y]
     AS (0), 
    FORMAT_STRING = "Standard",
    VISIBLE = 1;
    Scope 
    ([Measures].[Y],[Dim Time].[Fiscal Week].[Fiscal Week].Members
     ) ; 
        This = [Measures].[X - Vw Fact Total Weekly Traffic];
    End Scope ;
    Scope 
    ([Measures].[Y],[Dim Time].[Fiscal Week].[Fiscal Week].Members,
    [Dim Campaign].[Channel].[Channel].Members
     ) ; 
        This = [Measures].[X - Vw Fact Total Weekly Traffic By Channel];
    End Scope ;
    Scope 
     ([Measures].[Y],[Dim Time].[Fiscal Month].[Fiscal Month].Members
     ) ; 
        This = [Measures].[X - Vw Fact Monthly Traffic];
    End Scope ;
    Scope 
     ([Measures].[Y],[Dim Time].[Fiscal Month].[Fiscal Month].Members,
    [Dim Channel].[Channel].[Channel].Members
     ) ; 
        This = [Measures].[X - Vw Fact Monthly Traffic By Channel];
    End Scope ;
    

    `

    上面的代码在浏览窗格中拖动相应的维度属性时工作正常但在添加到筛选器窗格时不起作用。 Fiscal Week dimension dragged to browsing pane这有效。但 Fiscal Week dimension dragged to filter pane不起作用。 这是因为添加到筛选器窗格的属性将添加为子多维数据集语句。 有什么方法可以在将属性拖动到过滤器窗格时实现此目的吗? 时间维度属性关系(由Greg提出) Adding Time dimension Attribute relationship image

    非常感谢任何帮助。提前致谢

1 个答案:

答案 0 :(得分:1)

一种方法是使用动态命名集,如“使用动态集检测子选择”部分中的post中所述。

将其添加到现有MDX脚本的底部:

Create dynamic named set CurrentCube.[SelectedWeeks] as [Dim Time].[Fiscal Week].[Fiscal Week].Members;

Scope 
 ([Measures].[Y],[Dim Time].[Fiscal Month].[All],
[Dim Time].[Fiscal Week].[All],
[Dim Channel].[Channel].[All]
 ) ; 
    This = iif(SelectedWeeks.Count<[Dim Time].[Fiscal Week].[Fiscal Week].Members.Count,[Measures].[X - Vw Fact Total Weekly Traffic],0);
End Scope ;

但是这种方法的问题在于它将完全失去控制,检查通道上单选的所有排列与周上的多选等等。并且它可能会很慢。

相反,我建议从MDX脚本中删除Y的Create Member语句,并向“按周逐个”度量组添加新度量。调用新的物理度量Y并使其成为Sum并将其连接到每行返回0的新SQL列。这只是一个占位符测量,您将对其进行范围分配。为什么身体?在通道级别对物理度量进行范围分配时,例如分配聚合。 (计算结果的分配不会聚合。)这有助于解决多选问题。例如,您在通道级别分配,然后即使在多选中,所有通道编号也是正确的。

话虽这么说,我并不乐观,你能够找出正确的范围分配顺序,这样你的所有4个测量都可以通过适当的多选处理显示在你想要的位置。但随意尝试。

一个提示是使用冻结([测量]。[Y],[昏暗时间]。[财政月]。[全部])如果您对多维数据集的该部分感到满意​​但找到了一个范围分配到几个月随后的范围分配正在改变您满意的部分。

如果您需要进一步的帮助,请为昏暗时间添加“属性关系”选项卡的屏幕截图。