【问题标题】:MDX How to calculate the Avg/Sum of last 36 MonthMDX 如何计算过去 36 个月的平均/总和
【发布时间】:2015-04-24 14:08:44
【问题描述】:
WITH 
  MEMBER AvgOfLast36Month AS 
    Sum
    (
      LastPeriods
      (2
       ,[Dim Date].[Month].CurrentMember
      )
     ,[Measures].[capacity]
    ) 
SELECT 
  {AvgOfLast36Month} ON 0
 ,{[Project].[Model].[Model]} ON 1
FROM [CubeCapacity]
WHERE 
  StrToSet('[Dim Date].[Date].&[2014-02-20T00:00:00]&[02]&[1]&[2014]');

我正在尝试总结过去 36 个月的平均容量。我没有得到准确的总数。谁能帮帮我

【问题讨论】:

  • 如果您在问题中提供更多详细信息,人们会帮助您。首先,显示一些示例数据和所需的输出,并更详细地描述您的问题,否则这个问题将作为题外话关闭,因为您实际上是在说“为什么这段代码不起作用?”
  • 您想将过去 36 个月的每个月的日平均值加在一起吗?
  • 您在多维数据集中是否有任何日期层次结构,类似于年-季度-月-日期?在这种情况下,答案和性能会更好

标签: sql-server mdx analysis


【解决方案1】:

我相信这个表达式会返回 Sum

  MEMBER AvgOfLast36Month AS 
    Sum
    (
      LastPeriods
      (2
       ,[Dim Date].[Month].CurrentMember
      )
     ,[Measures].[capacity]
    ) 

MDX 拥有和AVG 功能 - 最好尝试使用它:https://msdn.microsoft.com/en-us/library/ms146067.aspx

您脚本的这一部分正在过滤上下文并导致问题:

WHERE 
  StrToSet('[Dim Date].[Date].&[2014-02-20T00:00:00]&[02]&[1]&[2014]');

也许您可以将此动态strTo.. sn-p 移至WITH 子句?这个 advWrks 脚本就是一个例子:

WITH 
  SET [x] AS 
    LastPeriods
    (36
     ,Exists
      (
        [Date].[Calendar].[Month].MEMBERS
       ,StrToMember('[Date].[Date].&[20070713]')
      ).Item(0).Item(0)
    ) 
  MEMBER [Measures].[avgOverSet] AS 
    Avg
    (
      [x]
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[avgOverSet]
  } ON 0
 ,NON EMPTY 
    [x] ON 1
FROM [Adventure Works];

以下是行中的国家/地区:

WITH 
  SET [36mth] AS 
    LastPeriods
    (36
     ,Exists
      (
        [Date].[Calendar].[Month].MEMBERS
       ,StrToMember('[Date].[Date].&[20070713]')
      ).Item(0).Item(0)
    ) 
  MEMBER [Measures].[avgOver36mths] AS 
    Avg
    (
      [36mth]
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  {[Measures].[avgOver36mths]} ON 0
 ,[Customer].[Customer Geography].[Country] ON 1
FROM [Adventure Works];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多