在MDX中指定集合的​​较短方法

时间:2011-06-01 10:09:32

标签: mdx ssas

是否有更简洁的方法在MDX中指定集合?

我知道我可以这样做:

{[Debtor].[TRADING DEBTOR CODE].&[AU-000013],[Debtor].[TRADING DEBTOR CODE].&[AU-000020]}

但是一旦你结束了几个成员,就会变得非常冗长。

我正在寻找像

这样的东西
MagicFunctionToMakeASet([Debtor].[TRADING DEBTOR CODE],'AU-000013,AU-000015,AU-000013,AU-000015,...')

2 个答案:

答案 0 :(得分:1)

它们是否按顺序排列?如果是的话,你能做到吗

{
      [Debtor].[TRADING DEBTOR CODE].&[AU-000013] : 
      [Debtor].[TRADING DEBTOR CODE].&[AU-000020]
}

为您提供一组13到20之间的代码?

如果做不到这一点,看看InStr,看看它是否可以提供帮助,它看起来可能是 - 或者您可以使用它创建一些子集然后合并到最终设置中?

http://msdn.microsoft.com/en-us/library/ms145487.aspx

从以上MSDN:

WITH SET [ChardonnayChablis] AS
   'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))'

SELECT
   [ChardonnayChablis] ON COLUMNS,
   {Measures.[Unit Sales]} ON ROWS
FROM Sales

答案 1 :(得分:0)

有各种快捷方式。如果您只想要某个成员的所有“孩子”,请使用Descendants().children。或者使用.members在一个级别获取所有成员。您可以指定两个成员之间的范围,或使用过滤器来匹配某种类型的标准。

你在追求什么?我会试着给出一个更具体的例子......