我有以下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对我来说是全新的。昨天我花了很大一部分时间尝试不同的事情但却无处可去。我真的很感激一些帮助。
由于 约翰
答案 0 :(得分:1)
只需将要返回的成员放入一组(用花括号标注),就是这样。无需Filter
:
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]
如果您使用SQL Server Management Studio中的MDX窗口编辑查询,则可以将成员从左侧列表拖到脚本中。在这种情况下,根据多维数据集配置的详细信息,生成的语法可能会略有不同 - 比如包含&符号,但两者都应该有效。但是,使用MDX窗口的此功能可以避免拼写错误。