Ssas MDX中set的父级

Ssas MDX中set的父级,ssas,mdx,Ssas,Mdx,我有一个在我的日期维度中选择特定日期的过滤器,它将作为参数传递到MDX查询中 Filter([Date Dimension].[Calendar Year Hierarchy].[Actual Date].members, [Date Dimension].[Actual Date].CurrentMember.Properties( "Name" ) = '2011-09-01 00:00:00.000') 我现在想在上面的层次结构中选择周和/或月 [日期维度][日历年层次结

我有一个在我的日期维度中选择特定日期的过滤器,它将作为参数传递到MDX查询中

Filter([Date Dimension].[Calendar Year Hierarchy].[Actual Date].members,
        [Date Dimension].[Actual Date].CurrentMember.Properties( "Name" ) = '2011-09-01 00:00:00.000')
我现在想在上面的层次结构中选择周和/或月

[日期维度][日历年层次结构][月份] [日期维度][日历年层次结构][日历周]

我尝试了几个功能,但运气不好,例如
.Parent
DrillupLevel

我可能用错了或者用错了地方


谢谢你的帮助,所以我现在的答案是

筛选器([日期维度].[日历年层次结构].[实际 日期].成员,[日期维度][实际 日期].CurrentMember.Properties(“名称”)=“2011-09-01 00:00:00.000”) .项目(0).父项

使用
.item[0]
获取集合中的项目 以及
.parent
以获取该项的父项(在我的情况下,我实际上调用了3次)


如果有任何人有更好的想法,请将其放在这里。

如果您知道所需的级别,您可以使用以下选项代替家长:

Ancestor([Date Dimension].[Calendar Year Hierarchy].currentmember, 
         [Date Dimension].[Calendar Year Hierarchy].[Month]) 
如果没有,则可以使用父函数。注意,使用属性并不是过滤(对于非常大的集合)的最快方法

为什么不习惯呢


或者,如果您可以在字符串生成器的帮助下直接编辑mdx来创建语句?

您可以使用函数GENERATE来获取所有升序:

Generate
 (
   {Filter([Date Dimension].[Calendar Year Hierarchy].[Actual Date].members,
        [Date Dimension].[Actual Date].CurrentMember.Properties( "Name" ) = 
'2011-09-01 00:00:00.000')},
{Ascendants([Date Dimension].[Calendar Year Hierarchy].CurrentMember)}
 )
使用Adventure Works进行查询:

Select 
{[Measures].[Internet Sales Amount]} On Columns,
{Generate(
{Filter([Date].[Calendar].[Date].members,[Date].[Calendar].CurrentMember.Properties("Name") = 'April 1, 2004')}, 
{Ascendants([Date].[Calendar].CurrentMember)})} On Rows
From    [Adventure Works]    

您可以使用
stroset
并将每个输入参数的
]
替换为
].Parent
,这样您将拥有一组父参数

Select 
{[Measures].[Internet Sales Amount]} On Columns,
{Generate(
{Filter([Date].[Calendar].[Date].members,[Date].[Calendar].CurrentMember.Properties("Name") = 'April 1, 2004')}, 
{Ascendants([Date].[Calendar].CurrentMember)})} On Rows
From    [Adventure Works]