MDX查询 - 从相同维度选择列

时间:2015-04-30 09:26:17

标签: mdx

我要求在多列中显示来自相同维度的数据。例如。我想明智地显示数据年份和月份。在我的维度结构中,Year和Month属于同一层次结构。当我在查询下运行时,我得到错误。 PFB查询。

Select NON EMPTY {[Measures].[Target Actual Value]} ON 0,
NON EMPTY {[Realization Date].[Hierarchy].[Year Name].Members *
[Realization Date].[Hierarchy].[Month Year]} ON 1
From [Cube_BCG_OLAP]

我得到的错误是查询(2,12)在Crossjoin函数中多次使用层次结构层次结构。我是MDX查询的新手。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

Select NON EMPTY {[Measures].[Target Actual Value]} ON 0,
NON EMPTY {[Realization Date].[Hierarchy].[Year Name].Members , 
[Realization Date].[Hierarchy].[Month Year]} ON 1
From [Cube_BCG_OLAP]

而不是CROSSJOIN如上所述。在集合中,您可以放置​​来自相同层次结构的成员

答案 1 :(得分:0)

我喜欢Sourav的答案 - 但它会将结果放在一列,与问题略有不同。

AdvWorks中,这是一栏:

SELECT 
  [State-Province].MEMBERS ON COLUMNS
 ,{
    [Date].[Calendar].[Calendar Year].MEMBERS
   ,[Date].[Calendar].[Month].MEMBERS
  } ON ROWS
FROM [Adventure Works];

可以切换到两列并使用交叉连接,但您需要找出日期维度Attribute层次结构的详细信息(而不是User层次结构):

SELECT 
  [State-Province].MEMBERS ON COLUMNS
 ,
  [Calendar Year].[All Periods].Children 
* [Month].MEMBERS ON ROWS
FROM [Adventure Works];

在你的立方体中可能是这样的:

SELECT 
  NON EMPTY 
    {[Measures].[Target Actual Value]} ON 0
 ,NON EMPTY 
    [Year Name].MEMBERS 
  * 
    [Month Year].MEMBERS ON 1
FROM [Cube_BCG_OLAP];