MDX随时间计数而没有特定的层次结构

时间:2011-02-01 02:38:53

标签: sql-server-2008 mdx ssas

以下是my question about count from start of time

我希望能够在不基于日期时间层次结构的情况下进行计数,但将其作为计算度量,当您针对它拖动维度时,它会起作用。我目前有

  

成员[Measures]。[承诺总额]为
  总和(
  [日期变暗]。[FY层次]。[会计年度]。成员(0):[日期变暗]。[FY层次] .currentMember
  ,[措施]。[承诺计数])

     

然后使用计算:

     

选择[Measures]。[承诺总计] 0   ,[日期昏暗]。[FY层次]。[财政年度] 1   来自[Cube]

我想要[Measures]。[Commitment Total]不是建立在[Date Dim]。[FY Hierarchy]上,而是在计算中独立,然后在select语句中使用日期轴 - 即我们可以按日历年,财年,剑麻年/月昏暗计算。

所以我觉得它看起来像这样:

  

成员[Measures]。[承诺总额]为
  总和(
  NULL:[Date Dim] .currentMember
  ,[措施]。[承诺计数])

     

然后使用计算:

     

选择[Measures]。[承诺总计] 0   ,[日期昏暗]。[FY层次]。[财政年度] 1   来自[Cube]

     

OR

     

选择[Measures]。[承诺总计] 0   ,[日期昏暗]。[CY层次]。[财政年度] 1   来自[Cube]

不确定我问的是否可能?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,并解决了如下问题:

SSAS无法真正告诉您所在的层次结构,因此您不能像在示例中那样简单地执行此操作。但是,以下内容对我有用。我已经尝试将其重新命名为您的命名,因此请检查明显的语法错误......

这一切都在您的多维数据集计算脚本中,您可能需要使用“脚本视图”而不是“块视图”。

CREATE MEMBER CURRENTCUBE.[Measures].[Commitment Total] AS NULL;

然后在脚本中为每个层次结构定义它:

SCOPE (DESCENDANTS([Date Dim].[FY Hierarchy],,AFTER));    
[Measures].[Commitment Total] =
sum(
[Date Dim].[FY Hierarchy].[Fiscal Year].members(0):[Date Dim].[FY Hierarchy].currentMember
, [Measures].[Commitment Count]);
END SCOPE;

SCOPE (DESCENDANTS([Date Dim].[CY Hierarchy],,AFTER));    
[Measures].[Commitment Total] =
sum(
[Date Dim].[CY Hierarchy].[Calendar Year].members(0):[Date Dim].[CY Hierarchy].currentMember
, [Measures].[Commitment Count]);
END SCOPE;

现在它将相应地运行,具体取决于查询中存在的层次结构。请注意,如果查询中没有任何层次结构,它将为NULL。