Ssas 使用或使用多个筛选器的MDX查询

Ssas 使用或使用多个筛选器的MDX查询,ssas,mdx,Ssas,Mdx,我有以下MDX查询,我被要求进行扩展: SELECT {} ON COLUMNS, CROSSJOIN( [Waterbody].[Waterbody Code].[Waterbody Code], [Waterbody].[Waterbody Name].[Waterbody Name], [Waterbody].[Waterbody Type].[Waterbody Type], filter([Waterbody].[Waterbody Full N

我有以下MDX查询,我被要求进行扩展:

    SELECT {} ON COLUMNS,
CROSSJOIN(
    [Waterbody].[Waterbody Code].[Waterbody Code],
    [Waterbody].[Waterbody Name].[Waterbody Name],
    [Waterbody].[Waterbody Type].[Waterbody Type],
    filter([Waterbody].[Waterbody Full Name].allmembers,instr([Waterbody].[Waterbody Full Name].currentmember.member_caption,'Test Waterbody Name')>0)
    )  ON ROWS FROM [Waterbody Data]
还有另一列名为“Waterbody Name”,我需要返回给定值位于“Waterbody Full Name”或“Waterbody Name”中的行

我对SQL很在行,但这个MDX东西对我来说是全新的。昨天我花了很大一部分时间尝试不同的东西,但一无所获。我非常感谢你的帮助

谢谢
John

只需将要返回的成员放入一个集合(用大括号表示),就这样了。不需要
过滤器

SELECT {} ON COLUMNS,
CROSSJOIN(
    [Waterbody].[Waterbody Code].[Waterbody Code],
    [Waterbody].[Waterbody Name].[Waterbody Name],
    [Waterbody].[Waterbody Type].[Waterbody Type],
    { 
      [Waterbody].[Waterbody Full Name].[Waterbody Full Name],
      [Waterbody].[Waterbody Full Name].[Waterbody Name]
    }
    )  ON ROWS
FROM [Waterbody Data]

如果使用SQLServerManagementStudio中的MDX窗口编辑查询,则可以将成员从左侧的列表拖动到脚本中。在这种情况下,根据多维数据集配置的详细信息,生成的语法可能略有不同,比如包含一个符号,但两者都应该可以工作。不过,使用MDX窗口的此功能可以避免输入错误。

谢谢Frank,但在您的示例中,它是如何过滤到特定值的?它们没有在您的示例中指定+1点,就像往常一样。。。你是否使用过MDX工具……jst想知道是否值得探索?@JohnMc我理解你的问题是,你只想显示两个名为“Waterbody全名”和“Waterbody Name”的成员。这就是MDX语句所做的。MDX不是SQL,成员(以及级别、层次结构、维度等)直接引用,通常不使用字符串操作。如果我误解了你的问题,请澄清。嗨,弗兰克,对不起,如果我没有解释清楚。我需要修改MDX查询以返回匹配Waterbody全名或Waterbody名称的结果。目前它只是为前者做这件事。我很清楚它不是SQL,如果它是的话@你说的“比赛”是什么意思?我假设它的意思是“名称相等”,并且这两个成员都在
水体
维度的
水体全名
层次结构中。是这样吗?