我正在尝试编写一个MDX查询,该查询将显示我们所有的产品以及它们所属的子组(层次结构父级)。虽然这项任务似乎相当微不足道,但我还是无法弄明白。这是我的MDX查询。
select
{
[Products].[Hierarchy].currentmember.parent
}
on 0,
{
[Products].[Hierarchy].[Product].members
}
on 1
from [CUBE]
我也试过
select
{
Ancestor([Products].[Hierarchy].currentmember,
[Products].[Hierarchy].[Subgroup])
}
on 0,
{
[Products].[Hierarchy].[Product].members
}
on 1
from [CUBE];
但我得到的只是一个灰色的产品列表,没有任何实际的列。任何帮助/提示将不胜感激。
答案 0 :(得分:1)
如果您想使用相同的层次结构,那么您只能在一个轴上使用它 - 上下文中有3个轴 - ON COLUMNS
/ ON ROWS
/ WHERE
。
因此,[Products].[Hierarchy].
ON COLUMNS
和ON ROWS
会引发异常。
您可以做的是将一些逻辑移到WITH
子句中,并将叙述移到Measures
维度:
WITH
MEMBER [Measures].[ProdName] AS
Ancestor(
[Products].[Hierarchy].currentmember,
[Products].[Hierarchy].[Subgroup]
).MEMBER_CAPTION
SELECT
[Measures].[ProdName] ON 0,
[Products].[Hierarchy].[Product].MEMBERS ON 1
FROM [CUBE];
您可以使用属性层次结构并执行以下操作:
SELECT
{} ON 0,
[Products].[Product].[Product]
*[Products].[Subgroup].[Subgroup]
ON 1
FROM [CUBE];