MDX联盟成员处于不同的层次结构中

时间:2015-06-10 16:54:30

标签: mdx business-intelligence olap cube

我想要的是创建一个查询,在同一轴上并排显示来自两个不同层次结构的成员。例如,像这样:

-----------------------------------------------------------------
|                         |               Product               | 
-----------------------------------------------------------------
| Location | Total Amount | Qty of Product A | Qty of Product B | 
-----------------------------------------------------------------
|   USA    | 9,249.23     |  2,382           | 1,009            |
-----------------------------------------------------------------
|   UK     | 9,998.09     |  5,282           | 5,129            |
-----------------------------------------------------------------

很明显,我们可以通过运行两个不同的查询来获得我们需要的结果,如下所示:

select 
[Measures].[Sales Amount] on 0,
[Country].[USA],[Country].[UK] on 1
from [Cube] 
where [Time].[Year].[2010]

select 
crossjoin([Product].[Type].members, [Measures].[Sales Quantity]) on 0,
[Country].[USA],[Country].[UK] on 1
from [Cube]
where [Time].[Year].[2010]

我发现这篇帖子http://blog.crossjoin.co.uk/2009/05/20/joining-the-results-of-two-mdx-queries-together很有帮助,但与我的情况略有不同。

如何在同一轴上使用具有不同层次结构成员的MDX get结果?

1 个答案:

答案 0 :(得分:0)

也许是这样的:

SELECT
  {
   ([Product].[Type].[All], [Measures].[Sales Amount])
  ,{[Product].[Type].members * [Measures].[Sales Quantity]}
  } ON 0,
  [Country].[USA],[Country].[UK] ON 1
FROM[Cube]
WHERE [Time].[Year].[2010];