Ssas 在筛选器窗格中拖动的维度不切片范围的度量值 一个度量值x从不同的事实表中得到它的值。让我们考虑时间(财政周、月份)维度和信道维度。对于这两个维度中的不同属性组合,X将从不同的表中获得其值,如下所示: 周+频道-从表FactTrafficByWeekChannel获取 周-从表FactTrafficByWeek获取 月份+频道-从表FactTrafficByMonthChannel获取 月-从表FactTrafficByMonth获取

Ssas 在筛选器窗格中拖动的维度不切片范围的度量值 一个度量值x从不同的事实表中得到它的值。让我们考虑时间(财政周、月份)维度和信道维度。对于这两个维度中的不同属性组合,X将从不同的表中获得其值,如下所示: 周+频道-从表FactTrafficByWeekChannel获取 周-从表FactTrafficByWeek获取 月份+频道-从表FactTrafficByMonthChannel获取 月-从表FactTrafficByMonth获取,ssas,mdx,Ssas,Mdx,为了实现这一点,我将这些事实添加到多维数据集中,并创建了一个计算度量值和范围脚本来覆盖范围。以下是范围脚本语句:` CALCULATE; CREATE MEMBER CURRENTCUBE.[Measures].[Y] AS (0), FORMAT_STRING = "Standard", VISIBLE = 1; Scope ([Measures].[Y],[Dim Time].[Fiscal Week].[Fiscal Week].Members ) ; This = [

为了实现这一点,我将这些事实添加到多维数据集中,并创建了一个计算度量值和范围脚本来覆盖范围。以下是范围脚本语句:`

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 ;
`

当在浏览窗格中拖动相应的维度属性时,上述代码可以正常工作,但当添加到筛选窗格时,上述代码不起作用。 这很有效。但是 不起作用。 这是因为添加到过滤器窗格的属性是作为子多维数据集语句添加的。 当属性也被拖到过滤器窗格时,有没有办法实现这一点? 时间维度属性关系(如Greg所要求)


非常感谢您的帮助。提前感谢

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

将以下内容添加到现有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 ;
创建动态命名集CurrentCube。[SelectedWeeks]作为[Dim Time].[Fiscal Week].[Fiscal Week]。成员;
范围
([措施][Y],[Dim Time].[会计月].[All],
[昏暗时间][财政周][全部],
[暗通道][通道][全部]
) ; 

这个=iif(SelectedWeeks.Count为什么您有4个度量组?一周内所有通道的汇总是否与您从week grain事实表中获得的结果不匹配?周是否汇总到会计月?如果按通道逐周数据可以汇总到其他三个汇总级别,当然这将简化问题并消除对任何MDX的需要。不,周数据不能汇总到会计月。基本上,周、月和季度的新访客计数也不同。为了简化我使用周和月的问题,问题是无法知道多维多维数据集中筛选器窗格中选择的属性,因为DAX中有一个函数“IsFiltered”来标识w是否筛选属性。不幸的是,MDXIs中没有等效功能,没有专家可以帮助回答此问题?您能否详细说明每周与每月计算新访客数量的差异?我添加了一个答案,说明如何检测多重选择,但怀疑4+粒度的度量将接近不可能正确。但是如果你解释新的访客数量,也许有一个更简单的方法。动态设置和比较所选周数和总条目非常有用。但是当我在筛选窗格中仅选择月份时。SelectedWeeks set将获得所选月数。在下面的代码中,首先满足并显示IIF条件s weeks data,而应该使用月份数据This=IIF(SelectedWeeks.Count<[Dim Time].[Fiscal Week].[Fiscal Week].[Fiscal Week].Members.Count,SUM([Measures].[X-Fact Weekly Traffic]),IIF(SelectedMonths.Count<[Dim Time].[Fiscal Month].[Fiscal Month].[Fiscal Month].Count.Members.Count,SUM([Measures]);是的。这是在同一维度的周和月级别上检测multiselect的复杂性的一部分。您非常简洁地解释了这一点。这是我对您当前的设计能否成功不乐观的原因之一。