0

BackStory 我在 MDX 中工作,我的度量值组使用许多计算。其中许多是时间框架,例如[Date].[Fiscal].[LY WTD]代表去年一周至今的时间框架。

为了计算这个,我使用了 ParellelPeriods 函数。但是,由于我们的日历一年有 52 周,今年有 53 周,所以我的计算是错误的。

我已经使用

CREATE MEMBER CURRENTCUBE.[Date].[Fiscal].[LY WTD] as
Aggregate(
  Exists(
    [Date].[Date].[Date].members,
      {
        [Date].[F Day Of Week].[F Day Of Week].item(0) :
        Exists([Date].[F Day Of Week].[F Day Of Week].members, [Date].[Last Complete Day].&[Y]).item(0)
      }
    * Exists([Date].[F Year].[F Year].members,[Date].[Last Complete Day].&[Y]).item(0).lag(1)
    * Exists([Date].[F Week of Year].[F Week of Year].members, [Date].[Current Week].&[Current Week])
  )
), VISIBLE = 0;

我现在需要对此进行测试。

问题 我如何确定我的度量 [Date].[Fiscal].[LY WTD] 在哪一周撤回?

4

2 回答 2

0

我认为我的问题是,当我聚合我的 calc 脚本时,不可能看到各个原始成员。这就是我最终要做的。

1. 首先,我使用了在 mdx 查询中进行计算时使用的相同脚本,并确保我得到了预期的日期。

Select
    {Measures.[Gross Units]} on 0,

  Exists(
    [Date].[Date].[Date].members,
      {
        [Date].[F Day Of Week].[F Day Of Week].item(0) :
        Exists([Date].[F Day Of Week].[F Day Of Week].members, [Date].[Last Complete Day].&[Y]).item(0)
      }
    * Exists([Date].[F Year].[F Year].members,[Date].[Last Complete Day].&[Y]).item(0).lag(1)
    * Exists([Date].[F Day of Year].[F Day of Year].members, [Date].[Current Week].&[Current Week])
  )


on 1
From myips

结果:

总单位 2015/05/09 (null) 2015/05/10 13,069 2015/05/11 35,853 2015/05/12 104,617 2015/05/13 46,318

2. 然后我查找结果,使用我对去年一周至今的计算并将其与那些日子聚合的查询范围计算成员进行比较

With Member [Date].[Fiscal].[Custom] as 
    Aggregate([Date].[Fiscal].[Date].&[2015-05-09T00:00:00]:[Date].[Fiscal].[Date].&[2015-05-13T00:00:00])

Select

[Date].[Fiscal].[Custom]
//Date.Fiscal.[LY WTD]
    on 0,

Measures.[Gross Units]
on 1
From myIPS

 **I got the same results! Success!**
于 2016-05-12T14:32:11.463 回答
0

你能像这样添加一个测试成员吗?

CREATE 
  MEMBER CURRENTCUBE.[Date].[Fiscal].[LY WTD - Caption] AS 
    Exists
    (
      [Date].[F Week of Year].[F Week of Year].MEMBERS
     ,
        {
            [Date].[F Day Of Week].[F Day Of Week].Item(0)
          : 
            Exists
            (
              [Date].[F Day Of Week].[F Day Of Week].MEMBERS
             ,[Date].[Last Complete Day].&[Y]
            ).Item(0)
        }*
        Exists
        (
          [Date].[F Year].[F Year].MEMBERS
         ,[Date].[Last Complete Day].&[Y]
        ).Item(0).Lag(1)*
        Exists
        (
          [Date].[F Week of Year].[F Week of Year].MEMBERS
         ,[Date].[Current Week].&[Current Week]
        )
    ).Item(0).Item(0).Member_Caption 
   ,VISIBLE = 1 ;
于 2016-05-10T16:48:54.150 回答