Ssas 如何仅筛选MDX中的子成员?
运行此mdx查询时,工作正常(从层次结构级别获取子成员): 但是,当我在行上添加一些元组时,不会过滤子成员(显示所有成员):SSsas 如何仅筛选MDX中的子成员?,ssas,mdx,business-intelligence,olap,Ssas,Mdx,Business Intelligence,Olap,运行此mdx查询时,工作正常(从层次结构级别获取子成员): 但是,当我在行上添加一些元组时,不会过滤子成员(显示所有成员):S *是一个交叉连接-您将得到[Dimension].[hierarchy].[level]的笛卡尔积。子对象和[Dimension2].[hierarchy2].[level2]。所有成员,因为它们是不同的维度 如果它们是来自同一维度的两个层次结构,则自动存在行为将限制结果,例如,2014年与月份的交叉应仅显示2014年的月份 尝试使用子体函数+您可能不需要空值,因此请尝
*
是一个交叉连接-您将得到[Dimension].[hierarchy].[level]的笛卡尔积。子对象和[Dimension2].[hierarchy2].[level2]。所有成员,因为它们是不同的维度
如果它们是来自同一维度的两个层次结构,则自动存在行为将限制结果,例如,2014年与月份的交叉应仅显示2014年的月份
尝试使用子体
函数+您可能不需要空值,因此请尝试非空
SELECT
{} ON COLUMNS,
NON EMPTY
DESCENDANTS(
[Dimension].[hierarchy].[level].[PickAHigherUpMember],
[Dimension].[hierarchy].[PickTheLevelYouWantToDrillTo]
)
*
[Dimension2].[hierarchy2].[level2].allmembers ON ROWS
FROM [Cube]
如果您查看儿童的mdx语言参考,您还会发现另一个示例,说明如何使用具有层次结构的函数而不是成员表达式
但它在层次结构级别上不起作用
也许行表达式最初是一个层次结构,您已经将其更改为级别表达式
在以下示例中,将创建一个具有行层次结构的类似工作mdx:
select {} on 0,
[Product].[Model Name].children
*
[Geography].[Country].[All Geographies]
on 1
FROM [Adventure Works
Philip,我猜您只想要那些子元素在默认度量值上有值的行。在这种情况下,您可以尝试以下方法:
select {} on columns,
Nonempty([Dimension].[hierarchy].[level].children
* [Dimension2].[hierarchy2].[level2].allmembers) on rows
from [Cube]
现在,如果对于孩子们,您需要Dimension2中的所有成员,那么您可以尝试:
select {} on columns,
Nonempty([Dimension].[hierarchy].[level].children, [Dimension2].[hierarchy2].[level2].allmembers)
* [Dimension2].[hierarchy2].[level2].allmembers) on rows
from [Cube]
在第二种情况下,非空函数接受第二个参数,并使用非空函数的结果进行交叉连接。有关非空的文档,包括第二个参数的用法,请参见Hi whytheq!谢谢回复!我使用后代函数得到了相同的行为,我得到了两个维度之间的笛卡尔积:S.PD:如果我使用非空子句,我得到“0行”(无结果)尝试向列上的{}添加一个度量,我添加了一个度量,得到了相同的结果(两个维度之间的笛卡尔积)好的-我想我遗漏了您实际需要的内容-如果您现在对列进行了度量,那么您应该只得到实际存在的元组(Dim,Dim2)的结果!!或者你的立方体只是在编数字?对不起,为什么我没有解释清楚。。我需要一个mdx查询,它返回来自2维(或更多维)的属性,只过滤层次结构中的子成员。问题是当我组合成员(使用交叉连接)时,“子项筛选”不起作用,因为交叉连接“破坏”了它…我不理解您的第一个脚本-这不是有效的构造[Dimension].[hierarchy].[level]。子项
,因为函数子项
无法应用于[level]-它只能应用于[成员]。。。。在你的第一个剧本中,它肯定是一个级别吗?
select {} on columns,
Nonempty([Dimension].[hierarchy].[level].children
* [Dimension2].[hierarchy2].[level2].allmembers) on rows
from [Cube]
select {} on columns,
Nonempty([Dimension].[hierarchy].[level].children, [Dimension2].[hierarchy2].[level2].allmembers)
* [Dimension2].[hierarchy2].[level2].allmembers) on rows
from [Cube]