2016-02-12 315 views
2

我想过滤其属性上的尺寸。
我的维度由具有父级叶子类别的各种类别组成。每个类别都有一个在线状态(true或false)。在维度内,我定义了属性“is_online”。 现在我想通过筛选状态分类树[is_online] = trueMDX:在其属性上过滤尺寸

我目前的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

Dimension & Property definition

回答

0

你需要为它的另一个[categories]发挥作用?

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

也许有帮助:

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]; 
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

+0

这里也是。我得到了同样的错误:找不到属性 – David

+0

你在icCube中有一个调试器,你有没有试过使用它? – ic3

0

尽管这是一个老帖子提高的错误消息。 请尝试用空格替换属性名称中的_。例如:“在线”。