有没有更好的方法来使用 MDX 命令而不是使用此 Drillhrough 解决方法从 SSAS 多维数据集显示简单网格(基本上看起来像 SQL 选择语句)?
这是我到目前为止一直在使用的:
DRILLTHROUGH
Select
([Measures].[Some Measure]) on columns
From (
Select
{
[PeriodSpan].&[201301] : [PeriodSpan].&[201304]
}
on columns
From [CubeName]
)
RETURN
[$Dimension1].[Attribute1],[$Dimension1].[Attribute2],[$Dimension1].[Attribute3],[$Dimension1].[Attribute4],[$Dimension1].[Attribute5],
[$Dimension2].[Attribute1],[$Dimension2].[Attribute2],[$Dimension2].[Attribute3],
[$Dimension3].[Attribute1],[$Dimension3].[Attribute2],[$Dimension3].[Attribute3],[$Dimension3].[Attribute4],
IIF([Dimension4].[Attribute1]=[Dimension4].[Attribute1].&[False],[Dimension4].[Attribute2],[Dimension4].[Attribute3])
问题是现在我无法弄清楚如何让 IFF 条件起作用。当我尝试运行命令时,出现错误消息“传递给 IIF MDX 函数的参数过多。不允许超过 1 个参数。” 我还尝试通过计算脚本在多维数据集级别创建新成员:
SCOPE (some hierarchy here which I'm still not clear on how to use);
IF [$Dimension4].[Attribute1] IS [$Dimension4].[Attribute1].&[False] THEN this = [Dimension4].[Attribute2] END IF;
IF [$Dimension4].[Attribute1] IS [$Dimension4].[Attribute1].&[True] THEN this = [Dimension4].[Attribute3] END IF;
END SCOPE
我还尝试了计算成员和命名集,但没有结果。
我对 SSAS 和 MDX 还很陌生,但我希望你能看到我想要完成的工作。提前致谢。任何帮助将非常感激。