我是MDX和Cubes的新手。
我需要使用具有特定属性的给定成员的后代的后代来切割数据。
DIM1是一个维度,其中Parent是其父子层次结构,它具有属性Attr1。
给出以下父树。必须使用成员601,711,712和811进行切片。如果他们的父母被退回是好的,那么测量数据只存在于叶级别。
Id | Parent | Attr1 1 | | 1 2 | 1 | 3 501 | 2 | 5 601 | 501 | 11 701 | 501 | 11 711 | 701 | 15 712 | 701 | 16 810 | 501 | 7 811 | 810 | 11
我收到错误" DESCENDANTS函数需要1个参数的单个层次结构的成员或集合。传递了一组多个层次结构。" 在尝试时
WHERE
DESCENDANTS (
{ { DESCENDANTS ( [DIM1].[PARENT].&[501].CHILDREN ) } * { [DIM1].[Attr1].&[11] } }
)
答案 0 :(得分:0)
您可以尝试使用from子句的子查询而不是where条件。
e.g。
SELECT
NON EMPTY { [Measures].[Sale Amt] } ON COLUMNS,
NON EMPTY {[Dim1].[Attr].children} * {[Dim1].[Parent].children } on rows
from
(
SELECT ( { [Dim1].[ParentH].[Parent].&[501], [Dim1].[ParentH].[Parent].&[501].children} ) ON COLUMNS
FROM [DBSF Test]
)
答案 1 :(得分:0)
目前你在外部DESCENDANTS
函数中有一个交叉连接 - 所以这将创建一组多个层次结构元组 - 因此是例外。如果你将交叉连接移到外面,它仍然是错误的吗?
WHERE
DESCENDANTS (
DESCENDANTS (
[DIM1].[PARENT].&[501].CHILDREN
)
) * { [DIM1].[Attr1].&[11] }