none
如何在MDX中使用通配符? RRS feed

  • 常规讨论

  • 解决方案

    对于这样的一个需求,在MDX中没有一个内置的函数可以实现,但是我们可以通过一下的两种方式实现:

    1. 在Filter()函数里面使用VBA 函数,例如:
    SELECT
    {} ON 0
    ,Filter
    (
    {[Employee].[Employees].MEMBERS}
    ,
    VBA!Instr([Employee].[Employees].CurrentMember.Name,"RA") > 0
    ) ON 1
    FROM [Adventure Works];

    更多关于Instr()函数的信息,请参考:
    http://msdn.microsoft.com/en-us/library/8460tsh1(VS.80).aspx

    2. 使用存储过程,你可以创建一个自己的存储过程来实现,你也可以从下面链接下载分析服务存储过程项目
    http://www.codeplex.com/wikipage?ProjectName=ASStoredProcedures
    然后使用像下面的MDX实现:
    SELECT
    {} ON 0
    ,ASSP.Like([Employee].[Employees].Members
    ,"%RA%"
    ,[Employee].[Employees].CurrentMember.Name)
    ON 1
    FROM [Adventure Works];

    2011年12月14日 2:05
    版主