带日期范围过滤器的MDX查询

时间:2015-01-22 10:27:39

标签: date mdx

我是MDX查询的新手。我正在写一个MDX查询来选择几个月的测量值,我在这里将日期范围作为过滤器,以限制没有返回月份。例如,我希望在2014年1月1日到2014年6月30日的日期范围内每个月的销售收入。理想情况下,它应该给我6个月的销售价值,即1月,2月,3月,4月,5月和6月。但是,当我写下面的查询时,我得到错误。下面的PFB输入代码来查询。

Select NON EMPTY {[Measures].[Target Plan Value]} ON COLUMNS,
NON EMPTY {[Realization Date].[Hierarchy].[Month Year].Members} ON ROWS
From [Cube_BCG_OLAP] 
( { [Realization Date].[Hierarchy].[Date].&[20140101] : 
[Realization Date].[Hierarchy].[Date].&[20141231] })

我得到的错误是Hierarchy层已经出现Axis1层次结构。此处日期和月份年份属于名为Realization Date的相同维度表。请帮我。提前谢谢。

4 个答案:

答案 0 :(得分:3)

你错过了WHERE条款,但我猜这是一个错字。正如您的错误消息所示,您不能在两个或多个轴上拥有相同层次结构的成员。在这种情况下,您可以使用下面的内容,在MDX术语中称为Subselect

Select NON EMPTY {[Measures].[Target Plan Value]} ON COLUMNS,
NON EMPTY {[Realization Date].[Hierarchy].[Month Year].Members} ON ROWS
From (
        SELECT 
        [Realization Date].[Hierarchy].[Date].&[20140101] : 
        [Realization Date].[Hierarchy].[Date].&[20141231] ON COLUMNS
        FROM [Cube_BCG_OLAP]
    )

答案 1 :(得分:2)

我喜欢这种情况下的存在功能:

SELECT 
  NON EMPTY {[Measures].[Target Plan Value]} 
  ON COLUMNS,
  NON EMPTY 
    EXISTS(
      [Realization Date].[Hierarchy].[Month Year].Members
      , {
         [Realization Date].[Hierarchy].[Date].&[20140101] : 
         [Realization Date].[Hierarchy].[Date].&[20141231]
        }
    ) 
  ON ROWS
FROM [Cube_BCG_OLAP] 

答案 2 :(得分:0)

Select 
[Measures].[Target Plan Value]} On Columns
{
[Realization Date].[Hierarchy].[Date].&[20140101].Parent : 
[Realization Date].[Hierarchy].[Date].&[20140631].Parent
} 
On Rows
From [Cube_BCG_OLAP]

答案 3 :(得分:0)

您只需要为多维数据集中的过滤器创建相同的维度,例如,维度过滤器->层次过滤器->级别过滤器