MDX“FILTER”条件不起作用

时间:2012-01-02 12:46:18

标签: mdx pentaho

现在我的问题是MDX查询中的过滤条件。我使用的MDX查询如下所示

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
NON EMPTY { [Offer].[Grand Total],
            [Offer].[Grand Total].Children } ON ROWS 
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] ,
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])

这个问题的问题是,这是显示以''AOL'开头的优惠。实际上我不想在报告中显示该优惠。所以我想尝试使用FILTER条件。但它也不起作用。我我得到了错误。任何人都可以帮助我 我想在ROWS上使用过滤条件。我使用以下MDX进行过滤。但是错误正在变为

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
FILTER( { [Offer].[Grand Total],
          [Offer].[Grand Total].Children !=[AOL]} ) ON ROWS
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] , 
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])

谢谢和问候 plshelpmep

2 个答案:

答案 0 :(得分:0)

你的filter mdx function是否最有可能导致问题,你可以尝试使用以下内容:

FILTER( { [Offer].[Grand Total],[Offer].[Grand Total].Children}, 
        [Offer].[Grand Total].currentmember is not [Offer].[Grand Total].[AOL] )

作为对您的评论和修复括号问题的答案:

SELECT 
 { [Channel].[Grand Total], [Channel].[Grand Total].Children } ON COLUMNS, 
 FILTER ( {[Offer].[Grand Total], [Offer].[Grand Total].Children }, 
   not([Offer].[Grand Total].currentmember is [Offer].[Grand Total].[AJOKED]) ) ON ROWS
FROM [SCMAircelCube] 
WHERE ( [Measures].[TotalCount], [Time].[2012].[1], [BasicCause].[Subscriber activated successfully], [ContentCategory].[SMS], [SubscriberProfile].[Active], [Circle].[KARNATAKA])

答案 1 :(得分:0)

您可以使用EXCEPT功能:

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
 { [Offer].[Grand Total], EXCEPT({[Offer].[Grand Total].Children}, {[Offer].[Grand Total].[AOL]})}  ON ROWS
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] , 
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])