我目前正在调查一段MDX
代码,其中NON EMPTY
无法过滤NULL值。这实际上列出了昨天所有帐户的DEMO_KPI。由于当天并非所有帐户都处于活动状态,因此结果集应该非常小。 MDX
使用预定义的集合来查找昨天。我认为昨天寻找的复杂性是从过去的设计。我是一个新手MDX开发人员试图找出为什么这个查询返回NULL并且它仍然是一个谜。
SELECT
NON EMPTY { [yesterday_1] } ON COLUMNS,
NON EMPTY { [Account].[Account ID].[All].CHILDREN } ON ROWS
FROM [DEMO]
WHERE ( [DIM_1].[Hierarchy_1].&[xyz], [Dim_2].[Hierarchy_2].&[abc], [Measures].[Demo KPI] )
MDX
使用我在此处表示的计算度量作为一组代码..
WITH
SET [base_yesterday_1] AS
FILTER(
[Date].[Date].[Date].MEMBERS,
[Date].[Date].CURRENTMEMBER.NEXTMEMBER.PROPERTIES("CALENDAR DATE NO PADDING")=format(NOW(), 'M/d/yyyy')
)
SET [cyesterday_1] AS
EXISTS(
[Date].[Calendar].[Date].MEMBERS,
[base_yesterday_1]
).ITEM(0).ITEM(0)
SET [yesterday_1] AS
{cyesterday_1.ITEM(0).ITEM(0)}
SELECT
NON EMPTY { [yesterday_1] } ON COLUMNS,
NON EMPTY { [Account].[Account ID].[All].CHILDREN } ON ROWS
FROM [DEMO]
WHERE ([DIM_1].[Hierarchy_1].&[xyz], [Dim_2].[Hierarchy_2].&[abc], [Measures].[Demo KPI])
由于所有返回的null都会导致结果集稀疏,并且影响客户端性能。
尝试将EXISTS
替换为{I}过滤NULLS无效的NONEMPTY
。是否有办法解决此问题或重写MDX
语句以便结果不包含NULLS?
答案 0 :(得分:0)
NON EMPTY
会排除显示中所有列中NULL
的行,而列NON EMPTY
会排除显示中的列在所有行中显示NULL
。
我不确定您的数据内容。但是,在引号中添加包含[Measures].[Demo KPI]
度量的度量值组的名称作为EXISTS
的第三个参数可能会有所帮助。也许在HAVING
之前直接添加ON ROWS
子句会有所帮助,它可以使用任何可以为每行计算的条件来限制要显示的行。