MDX:在其属性上过滤维度

时间:2016-02-12 18:08:00

标签: filter mdx dimension iccube iccube-reporting

我想过滤其属性的维度 我的维度包含具有父叶子类别的各种类别。每个类别都具有在线状态(真或假)。在维度内,我定义了属性" is_online"。 现在我想按状态[is_online] = true

过滤类别树

我目前的MDX是:

SELECT
  FILTER(
    [Categories].allmembers,
    [categories].CurrentMember.properties("is_online") = 'true' 
  ) on 0
FROM [Cube]

我收到此错误:

Property(): the property 'is_online' was not found

有谁知道解决方案?我的IcCube版本是V 5.1.6

this online book

3 个答案:

答案 0 :(得分:0)

你还需要另一个[categories]来运作吗?

SELECT
  FILTER(
    [Categories].allmembers,
    [Categories].[Categories].CurrentMember.properties("is_online") = 'true' 
  ) on 0
FROM [Cube];

也许HAVING有帮助:

WITH 
  MEMBER [Measures].[online] AS 
    [categories].currentmember.Properties('is_online') 
SELECT 
  [categories].ALLMEMBERS HAVING 
  [Measures].[online] = 'True' ON 0
 ,[Measures].[online] ON 1
FROM [Cube];

答案 1 :(得分:0)

[Categories].allmembers的成员遗失了该属性" is_online"。

如果默认情况下没有用户定义的属性,那么我受过教育的猜测将是[All]成员。

可能是这样的:

SELECT
 FILTER(
  [Categories].allmembers,
  [Categories].CurrentMember.isAll = false 
  AND
  [Categories].CurrentMember.properties("is_online") = 'true' 
  ) on 0
FROM [Cube]

我们将改进以下版本(issues

中的错误消息

答案 2 :(得分:0)

即使这是一个老帖子。 请尝试用空格替换属性名称中的_。例如:“在线”。