Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 在多个日期维度层次结构上查找平均值_Date_Sql Server 2012_Mdx_Dimensional Modeling_Ssas 2012 - Fatal编程技术网

Date 在多个日期维度层次结构上查找平均值

Date 在多个日期维度层次结构上查找平均值,date,sql-server-2012,mdx,dimensional-modeling,ssas-2012,Date,Sql Server 2012,Mdx,Dimensional Modeling,Ssas 2012,我有一个多维数据集,在这个多维数据集中有一个日期维度,它具有以下属性 日历年、日历月年、会计年度、会计年度季度、日期 现在有了这些属性,我有了两个用户定义的层次结构,它们如下 日历层次结构,包括日历年、日历月年、日期 第二个用户定义的层次结构是 具有会计年度、会计年度季度、日历月年度和日期的会计层次结构 我想知道平均销售额,所以我创建了一个衡量标准 Member [Measures].[Sales Daily Avg] AS Avg ( Descendants ( [Date].[Calenda

我有一个多维数据集,在这个多维数据集中有一个日期维度,它具有以下属性

日历年、日历月年、会计年度、会计年度季度、日期

现在有了这些属性,我有了两个用户定义的层次结构,它们如下 日历层次结构,包括日历年、日历月年、日期

第二个用户定义的层次结构是 具有会计年度、会计年度季度、日历月年度和日期的会计层次结构

我想知道平均销售额,所以我创建了一个衡量标准

Member [Measures].[Sales Daily Avg]
AS Avg ( Descendants ( [Date].[Calendar].CURRENTMEMBER, [Date].[Calendar].[Date] ), CoalesceEmpty([Measures].[Total Sales] , 0) )  
当运行类似于

SELECT {
[Measures].[Sales Daily Avg],
} ON COLUMNS,
{ [Date].[Calendar].[Calendar Year].Members } ON ROWS
FROM 
[SalesCube]
如果我使用[Date].[Calendar].[Calendar Month Year].成员,则此选项将起作用,但它不会对我的会计层次结构属性起作用,日历月年除外。如何修改度量,使其接受会计年度层次结构属性

我尝试按会计年度交叉联接,因为如果集合为空,它将只评估正在使用的集合。但这对我不起作用,我想sytnax可能是个问题


对不起,伙计们,我真的是个新手。

将计算成员的定义更改为:

CREATE Member [Measures].[Sales Daily Avg]
AS 
IIF
  (
   NOT([Date].[Fiscal].CURRENTMEMBER IS [Date].[Fiscal].[All])
   ,
   Avg 
     ( 
      Descendants 
                (
                 [Date].[Fiscal].CURRENTMEMBER, 
                 [Date].[Fiscal].[Date] 
                )
     ,
     CoalesceEmpty([Measures].[Total Sales] , 0) 
    )
   ,
   IIF
     (
      NOT([Date].[Calendar].CURRENTMEMBER IS [Date].[Calendar].[All])
      ,
      Avg 
        ( 
         Descendants 
                (
                 [Date].[Calendar].CURRENTMEMBER, 
                 [Date].[Calendar].[Date] 
                )
        ,
        CoalesceEmpty([Measures].[Total Sales] , 0)
        ),
        NULL //Change this to whatever you want in case none of the hierarchies 'Calendar' or 'Fiscal' is involved.
     )
     )
基本上,这将首先检查来自财政层级的任何成员是否在范围内。如果是,它将在所选成员的会计日期上求平均值。如果不满足第一个条件,它将进一步检查日历层次结构中的任何成员是否在范围内。如果是这样,它在日历层次结构上的工作方式也类似。最后,如果层次结构的成员都不在范围内,那么您可能会重新考虑,并根据您的需求进行放置


注意:当任何层次结构的currentmember是All成员时,这意味着层次结构不在范围内,不属于切片器或轴的一部分

我得到错误。您的条件看起来工作得很好,但在执行AVG功能时,有些东西似乎不起作用。我已经在IFF函数之外测试了avg函数,它们工作起来很有趣,一旦它们在IFF函数中,就会产生一个错误。可能是从打字错误到标准语法错误。我还没有测试过。让我来,很好用。非常感谢。不仅你的代码正确,你的解释也很有教育意义。MDX很难学。如果我们有[Date].[Calendar]。行上的成员,这个度量值有效吗?@SouravA+1,请回答。但唯一的问题是,当您在筛选器中选择多个成员(例如两个日历年)时,Excel将在子查询子多维数据集中发送这些成员,而SSAS将不知道正在使用日历年,从而导致其返回null。