在FILTER函数中添加OR [英] Adding OR into the FILTER function

查看:122
本文介绍了在FILTER函数中添加OR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在此

We've got the following thanks to @FrankPI in this SO Post

WITH 
   MEMBER [Measures].[LevelName] AS
       [Employee].[Employee Department].CurrentMember.Level.Name
   MEMBER [Measures].[LevelNumber] AS
       [Employee].[Employee Department].CurrentMember.Level.Ordinal
   MEMBER [Measures].[MemName] AS
       [Employee].[Employee Department].CurrentMember.Name
   SET [Set_TargetEmp] AS
        {
        FILTER(
            [Employee Department].AllMembers,
                (
                InStr(
                    1, 
                    [Employee].[Employee Department].currentmember.name, 
                    "WC4") <> 0
                ) 
            )
        }
SELECT
    {
    [Measures].[MemName], 
    [Measures].[LevelName],
    [Measures].[LevelNumber] 
    } ON 0,
    Hierarchize(
        Generate([Set_TargetEmp] as e,
            Ascendants(e.Current)
            +
            Descendants(e.Current, e.Current.Level, SELF_AND_AFTER)
        )
    )
    ON 1
FROM [Adventure Works] 

我想做一个小更改,但关键成员53的新成员(Reuben H. D'sa)没有出现在结果集中.为什么?

I want to make one small change but the new member (Reuben H. D'sa) who is key 53, does not appear in the result set. Why?

WITH 
    MEMBER [Measures].[LevelName] AS
        [Employee].[Employee Department].CurrentMember.Level.Name
    MEMBER [Measures].[LevelNumber] AS
        [Employee].[Employee Department].CurrentMember.Level.Ordinal
    MEMBER [Measures].[MemName] AS
        [Employee].[Employee Department].CurrentMember.Name
    SET [Set_TargetEmp] AS
        {
        FILTER(
            [Employee Department].AllMembers,
                (
                InStr(
                    1, 
                    [Employee].[Employee Department].currentmember.name, 
                    "David P. Hamilton") <> 0
                ) 
            or
            [Employee].[Employee Department].currentmember.member_key = 53 //<<<<<<new bit
            )
        }
SELECT
    {
    [Measures].[MemName], 
    [Measures].[LevelName],
    [Measures].[LevelNumber] 
    } ON 0,
    Hierarchize(
        Generate([Set_TargetEmp] as e,
            Ascendants(e.Current)
            +
            Descendants(e.Current, e.Current.Level, SELF_AND_AFTER)
        )
    )
    ON 1
FROM [Adventure Works] 

推荐答案

似乎currentmember.member_key = 53不返回任何匹配结果.我尝试了currentmember.Properties("Key0", typed) = 53,并且返回了两名员工.

It seems that currentmember.member_key = 53 does not return any matching result. I tried currentmember.Properties("Key0", typed) = 53, and that returned both employees.

请参见关于Properties方法的文档有关内在属性的文档(向下滚动到非上下文敏感成员属性" )以获取详细信息.

See the documentation on the Properties method and the documentation on intrinsic properties (sroll down to "Non-Context Sensitive Member Properties") for details.

这篇关于在FILTER函数中添加OR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆