题
我需要定义一个计算会员在MDX(这是SAS OLAP,但我想更好的答案从工作人员不同的OLAP实现无论如何)。
新措施的价值计算应从现有措施通过应用一个过滤器的额外条件。我想这会更清楚有一个例子:
- 现有的措施:"总务"
- 现有的尺寸:"方向"("中"或"出去")
- 我需要建立一个计算元件"来交通",这等于"总务"有额外的过滤器(向="中的")
问题是我不知道MDX和我在一个非常紧的时间表(很抱歉对于一个新手的问题)。好的,我能想出的是:
([Measures].[Total traffic], [Direction].[(All)].[In])
这几乎的工作,除了用于细胞与特定的方向:
因此它看起来像是"固有的"过滤器上的方向是复盖我自己过滤器)。我需要一个交叉路口的"固有的"过滤器和我自己的。我的直觉是,它做交叉 [Direction].[(All)].[In]
与征coords的单元正在进行评估,但很难知道我需要什么没有一读了关于这个问题:)
[编辑]我结束了
IIF([Direction].currentMember = [Direction].[(All)].[Out],
0,
([Measures].[Total traffic], [Direction].[(All)].[In])
)
..但至少在SAS OLAP这将导致额外的查询,以执行(计算的价值[在])的基础数据集,因此我没有使用它的结束。
解决方案
开始,你可以界定一个新的计算衡量在MDX,并且告诉它使用价值的另一项措施,但与一个过滤器应用:
WITH MEMBER [Measures].[Incoming Traffic] AS
'([Measures].[Total traffic], [Direction].[(All)].[In])'
每当你出现的新措施的报告,它将表现为如果它有一个过滤器的方向>在对它,无论是否向维用。
但你的情况,你希望的方向层面采取优先顺序的时候。所以事情变得有点乱。你将得到检测,如果这一层面是在使用,并采取相应的行动:
WITH MEMBER [Measures].[Incoming Traffic] AS
'IIF([Direction].currentMember = [Direction].[(All)].[Out],
([Measures].[Total traffic]),
([Measures].[Total traffic], [Directon].[(All)].[In])
)'
看如果该尺寸是在使用中,我们检查,如果目前的电池是使用。如果是这样我们就可以返回总流量,因为它是。如果没有,我们可以告诉它用于在我们的元组。
其他提示
我觉得你应该把列在总流量的事实表/出指示和创建一个暗淡的表出的价值观。然后你可以分析你的数据的基础上进出。
还看看 这个问题, 它描述了同样的问题,并有一个不同的答案张贴在那里。
不隶属于 StackOverflow