在以下MDX
代码中,我想获取上次指定成员的度量聚合(如示例01/06/2015),否则我不想要它们。<登记/>
我尝试过现存但没有任何运气
我相信我必须使用IIF
函数
像:
IIF DAYTIME, MEASURE D NOT NULL THEN AGGREGATE....
(如果特定月份,度量D大于0,则SUM测量D为特定时间范围)
ELSE NULL.
(否则不在输出上打印)
然后过滤E.members SUM
测量D >1
ON ROWS。
WITH
MEMBER A AS
b + C
MEMBER [Measures].[Aggregate] AS
Aggregate
(
DAYTIME.[Month].&[2013-01-01T00:00:00]
:
[DAYTIME].[Month].&[2015-06-01T00:00:00]
,[Measures].[D]
)
SELECT
[Measures].[Aggregate] ON 0
,Filter
(
Exists
(
[E].MEMBERS
,[DAYTIME].[Month].&[2015-06-01T00:00:00]
)
,
[Measures].[Aggregate] > 1
) ON 1
FROM [CUBE];
答案 0 :(得分:0)
来自MSDN论坛的人提醒我使用NONEMPTY。所以首先我使用NONEMPTY 非空([E],([DAYTIME]。[月]。&amp; [2015-06-01T00:00:00],[措施]。[D])) 为了在2015-06-01返回所有对于measure.D具有非null值的E.成员 然后我用另一个措施过滤这个
我没有得到正确的数据,但我相信BI解决方案存在问题。
答案 1 :(得分:0)
尝试使用Sum
而不是Aggregate
。另外,由于[DAYTIME].[Month].&[2015-06-01T00:00:00]
是度量[Measures].[Aggregate]
的一部分,您可以删除Exists
函数:
WITH
MEMBER [Measures].[Aggregate] AS
Sum
(
DAYTIME.[Month].&[2013-01-01T00:00:00]
:
[DAYTIME].[Month].&[2015-06-01T00:00:00]
,[Measures].[D]
)
SELECT
[Measures].[Aggregate] ON 0
,Filter
(
[E].MEMBERS
,[Measures].[Aggregate] > 1
) ON 1
FROM [CUBE];
注意:[Measures].[D]
与这些成员[E].MEMBERS