我是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
的相同维度表。请帮我。提前谢谢。
答案 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)
您只需要为多维数据集中的过滤器创建相同的维度,例如,维度过滤器->层次过滤器->级别过滤器