Ssas 多个月以前的等效MTD

Ssas 多个月以前的等效MTD,ssas,mdx,olap,Ssas,Mdx,Olap,如果今天的日期是2008年7月11日,则MTDsum的范围为{2008年7月1日-2008年7月11日。 上一个6月的等效MTD期为{2008年6月1日至2008年6月11日}。 5月的前一个相当于中期部署的期间是{2008年5月1日至2008年5月11日} 我有以下MDX脚本: WITH MEMBER [Measures].[PrevEquivalentMTD] AS //SUM ( ParallelPeriod ( [Date]

如果今天的日期是2008年7月11日,则
MTD
sum的范围为{2008年7月1日-2008年7月11日。
上一个6月的等效MTD期为{2008年6月1日至2008年6月11日}。
5月的前一个相当于中期部署的期间是{2008年5月1日至2008年5月11日}

我有以下
MDX
脚本:

WITH 
  MEMBER [Measures].[PrevEquivalentMTD] AS 
    //SUM
    (
      ParallelPeriod
      (
        [Date].[Calendar].[Month]
       ,1
       ,[Date].[Calendar].CurrentMember
      )
     ,[Measures].[Internet Sales Amount]
    ) 
  MEMBER [Measures].[PrevEquivalentMTD_v2] AS 
    Sum
    (
      Generate
      (
        {
            [Date].[Calendar].[Date].&[20080701]
          : 
            [Date].[Calendar].[Date].&[20080710]
        }
       ,{
          ParallelPeriod
          (
            [Date].[Calendar].[Month]
           ,1
           ,[Date].[Calendar].CurrentMember.Item(0)
          )
        }
      )
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  {
      [Date].[Calendar].[Month].&[2005]&[6]
    : 
      [Date].[Calendar].[Month].&[2008]&[7]
  } ON ROWS
 ,{
    [Measures].[Internet Sales Amount]
   ,[Measures].[PrevEquivalentMTD]
   ,[Measures].[PrevEquivalentMTD_v2]
  } ON COLUMNS
FROM [Adventure Works];
其结果如下:

我所要找的不是测量值prevenequivalentmtd,因为它返回的是上个月的总数,而不仅仅是前10天的总数

度量值
preverequivalentmtd_v2
我不确定这是如何为每个月返回相同的数字的

我如何创建一个指标来返回每个月前10天的互联网销售总额?

我会想到。但是,由于您的查询中没有第11个作为选定成员,因此我只使用11作为给定输入

WITH 
  MEMBER [Measures].[PrevEquivalentMTD] AS 
    Sum(Head([Date].[Calendar].CurrentMember.PrevMember.Children, 11),
        [Measures].[Internet Sales Amount])
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[PrevEquivalentMTD]
  } ON COLUMNS,
  {
      [Date].[Calendar].[Month].&[2005]&[6]
    : 
      [Date].[Calendar].[Month].&[2008]&[7]
  } ON ROWS
FROM [Adventure Works]
这是从单元格的行上下文中获取前一个月(
PrevMember
)的前11个子项(
Head(,11)
),然后对这些子项求和

要动态访问
11
,您可以。G使用类似

Rank(Tail([Date].[Calendar].[Date]).Item(0), 
     Tail([Date].[Calendar].[Month]).Item(0).Item(0).Children
    )

它确定日历层次结构的最后一天在其父月的子月中的位置(
Rank
)。假设没有缺失的天数e。G对于周末,这应该有用。对于Adventure Works,它返回30,因为2010年11月30日是日历层次结构中的最后一天。

您真的想拥有每个月第一个到第11个的数据,并在行中显示月份吗?@FrankPl是-我的目标是A列中的
月份
,然后B列中的月份的
总计
,然后是c列中的
preverequivalentmtd
(这是每个月的前X个天数的总和,其中X等于最近一个月完成的天数)@FrankPI-这是我在破解这个方面做的更好的尝试:+1谢谢Frank-这个请求最初看起来很琐碎,一天后,我还在挠头。可能需要将日历hier移动到一个命名的集合>然后使用
的自定义度量值如何。对自定义集合尾部最后一项的叶子进行计数
,然后将该度量值输入head函数以替换11?