未正确应用mdx查询中的筛选器

时间:2014-03-07 15:11:19

标签: ssas mdx

我有一个MDX过滤器问题,我认为我正确使用但是我仍然得到一些我不想得到的行。 示例查询是:

SELECT {[Measures].[AFR],[Measures].[IB],[Measures].[IC All]} ON COLUMNS,
NON EMPTY ( ([dim_ProductModel].[Product Model].&[DSDB]) 
* FILTER(  ([dim_Country].[Country Name].members -[dim_Name].[Country Key].[All]),[Dim_Date].[Date Full].&[2014-01-01]*[Measures].[IB] > 0 AND NOT ISEMPTY ([Dim_Date].[Date Full].&[2014-01-01]*[Measures].[IB] )) 
* {[Dim_Date].[Date Full].&[2013-02-01]:[Dim_Date].[Date Full].&[2014-01-01]}) 
ON ROWS FROM [cub_dashboard_spares]

现在我需要的是排除那些国家! (过滤器)在这种情况下针对特定产品型号[DSDB],其中在2014年1月(尺寸),测量IB是> 0或不为null。现在它似乎正确地过滤了一些国家,但是我仍然得到一些结果,其中IB在上个月为0或IB在上个月(在我们的情况下为2014年1月)(无效)。

可以请任何人帮我解决问题吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

我会将国家/地区添加到过滤条件中,即。即使用

SELECT {[Measures].[AFR],[Measures].[IB],[Measures].[IC All]}
       ON COLUMNS,
       NON EMPTY
       [dim_ProductModel].[Product Model].&[DSDB]
       * FILTER(([dim_Country].[Country Name].members -[dim_Name].[Country Key].[All]),
                ([dim_Country].[Country Name].CurrentMember, [Dim_Date].[Date Full].&[2014-01-01], [Measures].[IB]) > 0
                AND NOT
                ISEMPTY(([dim_Country].[Country Name].CurrentMember, [Dim_Date].[Date Full].&[2014-01-01], [Measures].[IB]))
               ) 
       * {[Dim_Date].[Date Full].&[2013-02-01]:[Dim_Date].[Date Full].&[2014-01-01]}
       ON ROWS
  FROM [cub_dashboard_spares]

答案 1 :(得分:0)

这是我的问题..:不明白为什么出现AFR 0的结果:(

i don't get it..