【发布时间】:2013-12-24 08:43:50
【问题描述】:
我们有一个带有Dimension [Client] 的hierarchy [Company] - 这个层次结构是多级的,具有三个定义的级别HoldingCompany、Name 和OwnerName。
这是搜索具有这些级别的名称的最有效方法,还是我应该明确命名级别并以某种方式使用OR 运算符?
WITH
MEMBER [Measures].[LevelName] AS
[Client].[Company].Level.Name
MEMBER [Measures].[LevelNumber] AS
[Client].[Company].Level.Ordinal
SELECT
{
FILTER(
[Client].[Company].AllMembers,
(
InStr(1, [Client].[Company].currentmember.name, "Smith") <> 0
)
)
} ON 1,
{
[Measures].[LevelName],
[Measures].[LevelNumber]
} ON 0
FROM [ourCube]
【问题讨论】:
-
您还可以查看descendants 函数。
-
@mmarie -
descendants函数针对All级别,而不是使用.AllMembers?哪个更快? -
我不确定您是否可以对 ALLMEMBERS 使用后代。 All 是层次结构中的实际级别。 Allmembers 是一个函数,它返回层次结构中 All 的子级的所有成员。如果使用 allmembers 有效,我猜它会尝试使其针对所有成员的集合而不是单个 All 成员对其进行评估,这似乎需要更长的时间。
标签: sql-server-2012 ssas mdx