我需要将结果叶节点的父级列在相应的列中,列在一行中。
下面的查询返回预期结果
SELECT NON EMPTY { [Measures].[Value] } ON COLUMNS,
NON EMPTY { ([Account].[Account List].[Account List].ALLMEMBERS ) }
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM [My Cube]
这将返回格式的结果
My Child | 1234
但我要找的是
Parent 5| Parent 4| Parent 3| My Child| 1234
基本上我需要叶节点
仅限
所以我尝试了下面的查询,它确实返回了叶子,但它也包含了我不感兴趣的父元素。
SELECT NON EMPTY { [Measures].[Value] } ON COLUMNS,
NON EMPTY { (DESCENDANTS([Account].[Account].[Level 02].ALLMEMBERS) ) }
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM [My Cube]
以上返回格式的结果
> Parent 5| Null| Null| Null| 1
> Parent 5| Parent 4| Null| Null| 12
> Parent 5| Parent 4| Parent 3| Null| 123
> Parent 5| Parent 4| Parent 3|My Child| 1234
根据以上结果,我只需要最后一行。当然,一种解决方案是将其写入表并过滤掉“空行”。但是,有没有更好的方法只获取叶子呢?
仅供参考,我们的解决方案是使用SSIS使用MDX查询Olap并将其提取到二维表中。