Ssas Analysis services筛选器函数隐式筛选空元素

Ssas Analysis services筛选器函数隐式筛选空元素,ssas,mdx,Ssas,Mdx,无论成员是否为空,我都需要按某种条件筛选[\u Account.Account selection]中的成员,但filter()函数隐式排除空成员。这是一个bug还是一个特性?MSDN没有提到过滤器函数的这种行为 你知道如何避免这个问题吗 WITH SET [__Account.Account selection] AS '{ { [Account].[Account Number].&[110] ,[Account].[Acco

无论成员是否为空,我都需要按某种条件筛选[\u Account.Account selection]中的成员,但filter()函数隐式排除空成员。这是一个bug还是一个特性?MSDN没有提到过滤器函数的这种行为

你知道如何避免这个问题吗

WITH 
  SET [__Account.Account selection] AS 
    '{
      {
        [Account].[Account Number].&[110]
       ,[Account].[Account Number].&[1130]
       ,[Account].[Account Number].&[1164]
       ,[Account].[Account Number].&[1210]
       ,[Account].[Account Number].&[1300]
       ,[Account].[Account Number].&[20]
       ,[Account].[Account Number].&[8500]
       ,[Account].[Account Number].&[8040]
      }
    }' 
  SET [__Account.Account Number_RootMembers_Smart] AS 
    '{
    Filter(
        [__Account.Account selection],
        1 = 1)}' 
SELECT 
  [__Account.Account Number_RootMembers_Smart] ON ROWS
 ,{} ON COLUMNS
FROM [Adventure Works]
注意:函数Generate()具有相同的行为

注2:“空成员”是指在任何度量值上都没有值的成员

还有一些成员采取了措施。。。 请尝试以下方法:

WITH 
  SET [__Account.Account selection] AS 
    {
      {
        [Account].[Account Number].&[110]
       ,[Account].[Account Number].&[1130]
       ,[Account].[Account Number].&[1164]
       ,[Account].[Account Number].&[1210]
       ,[Account].[Account Number].&[1300]
       ,[Account].[Account Number].&[20]
       ,[Account].[Account Number].&[8500]
       ,[Account].[Account Number].&[8040]
      }
      * [Account].[Account].[Account].Members
    } 
  SET [__Account.Account Number_RootMembers_Smart] AS 
    {
    Filter(
        [__Account.Account selection],
        1=1)}
SELECT  {} ON COLUMNS,

  [__Account.Account Number_RootMembers_Smart] ON ROWS
FROM [Adventure Works]
请注意,我在查询中添加了
[Account].[Account].[Account].Members
。由于之前未提及,当前坐标系为
[所有账户]
成员。由于Account维度是父子维度,因此8个帐号中的6个显然不存在All成员。更改查询可确保将相关帐户和帐户号码对放在一起,以便所有8行都存在于多维数据集中并显示出来。

请尝试以下操作:

WITH 
  SET [__Account.Account selection] AS 
    {
      {
        [Account].[Account Number].&[110]
       ,[Account].[Account Number].&[1130]
       ,[Account].[Account Number].&[1164]
       ,[Account].[Account Number].&[1210]
       ,[Account].[Account Number].&[1300]
       ,[Account].[Account Number].&[20]
       ,[Account].[Account Number].&[8500]
       ,[Account].[Account Number].&[8040]
      }
      * [Account].[Account].[Account].Members
    } 
  SET [__Account.Account Number_RootMembers_Smart] AS 
    {
    Filter(
        [__Account.Account selection],
        1=1)}
SELECT  {} ON COLUMNS,

  [__Account.Account Number_RootMembers_Smart] ON ROWS
FROM [Adventure Works]


请注意,我在查询中添加了
[Account].[Account].[Account].Members
。由于之前未提及,当前坐标系为
[所有账户]
成员。由于Account维度是父子维度,因此8个帐号中的6个显然不存在All成员。更改查询可确保将相关帐户和帐户号码对放在一起,以便所有8行都存在于多维数据集中并显示出来。

成员为空是什么意思?您能提供一个屏幕截图吗?成员在所有度量值上都没有值。哪个客户端工具正在运行此查询?SSMS MDX窗口?SSR?自定义应用程序?是所有行都消失了,还是只有空的成员行?从8个指定成员中,有两个将出现在结果中,因为它们是具有值的成员…如果删除筛选函数,查询结果中所有8个都将返回?您认为成员为空是什么意思?您能提供一个屏幕截图吗?成员在所有度量值上都没有值。哪个客户端工具正在运行此查询?SSMS MDX窗口?SSR?自定义应用程序?是所有行都消失了,还是只有空成员行?从8个指定成员中,有两个将出现在结果中,因为它们是具有值的成员…如果删除筛选函数,则查询结果中的所有8个都将返回?在HasValue列下返回具有“1”值的相同两个成员。不工作:(它对你有用?如果你有AdwentureWorks(ssas的示例数据库,你可以试试)谢谢你的帮助!Divisadero明天会试试。什么版本的ssas?版本12.0.2000.8。@Divisadero那是2014 RTMReturns,在HasValue列下有相同的两个成员,值为“1”。不工作:(它对你有用?如果你有AdwentureWorks(ssas的示例数据库,您可以尝试)谢谢您的帮助,顺便说一句!@Divisadero明天将尝试。什么版本的ssas?版本12.0.2000.8.@Divisadero这是2014 RTM