1

有没有更好的方法来使用 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 还很陌生,但我希望你能看到我想要完成的工作。提前致谢。任何帮助将非常感激。

4

0 回答 0