我目前正在研究一块MDX
代码,其中NON EMPTY
无法过滤NULL值。这实际上列出了昨天所有帐户的DEMO_KPI。由于并非所有帐户都在当天处于活动状态,因此结果集应该非常小。 MDX
使用预定义的集合来查找昨天。我认为昨天发现的复杂性来自过去的设计。我是一个新手MDX开发人员,试图找出为什么这个查询返回NULL,它仍然是一个谜。使用NON EMPTY的MDX查询不过滤NULL 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])
中的结果将是,因为所有的空的回报,并影响客户端性能的稀疏。
试过更换EXISTS
与NONEMPTY
这不过滤NULLS either.Is有没有办法来解决这个问题,或者重写MDX
语句,结果不包含空值帮助吗?
嗨弗兰克 - 因为自定义集不是上下文感知(除了WHERE子句),这是否会影响用户将'currentmember'放在集合[base_yesterday_1]中? – whytheq
@whytheq好点!可能''[base_yesterday_1]''始终是空集,因为'[Date]。[Date] .CURRENTMEMBER'是日期层次结构的默认成员,大概是'All'成员,它没有'NEXTMEMBER'。 – FrankPl