简体   繁体   English

SSAS MDX滚动总计不同日期范围

[英]SSAS MDX Rolling Total Different Date Ranges

I am working on a finance cube with a calculated member using the following MDX formula: 我正在使用以下MDX公式处理带有计算所得成员的财务多维数据集:

IIF
 (
  [Chart Of Accounts].[Account Sub Group].CurrentMember 
   = 
  [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
  [Measures].[Amount GL YTD], 
  SUM
     (
      ParallelPeriod
                    (
                     [Date].[Year -  Quarter -  Month -  Date].[Year],
                     100,
                     [Date].[Year -  Quarter -  Month -  Date].CurrentMember
                    )
      :
      [Date].[Year -  Quarter -  Month -  Date].CurrentMember,
      [Measures].[Amount GL]
     )
 )

All works as expected. 所有工作均按预期进行。 [RESULTS-CURRENT YEAR] displays the correct total for YTD while every other entry displays the totals from beginning of time. [RESULTS-CURRENT YEAR]显示正确的YTD总计,而其他所有条目则从时间开始显示总计。 Except for the Equity rollup which [RESULTS-CURRENT YEAR] is in. It adds the totals from the beginning of time as well which is inflating the Total Equity on my pivot table. 除了[RESULTS-CURRENT YEAR]所在的“总资产”汇总外,它还从开始就添加了总计,这使我的数据透视表上的“总总资产”膨胀了。

Any ideas on how I can correct this? 关于如何解决此问题的任何想法?

Explanation Summary 说明摘要

I don't understand the question but one thing I notice is that you have used = but to signal equality of members in mdx you should use IS 我不明白这个问题,但是我注意到的一件事是您使用了=但为了表示mdx中成员的相等性,您应该使用IS

IIF
 (
  [Chart Of Accounts].[Account Sub Group].CurrentMember 
   IS
  [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
  [Measures].[Amount GL YTD], 
  SUM
     (
      ParallelPeriod
                    (
                     [Date].[Year -  Quarter -  Month -  Date].[Year],
                     100,
                     [Date].[Year -  Quarter -  Month -  Date].CurrentMember
                    )
      :
      [Date].[Year -  Quarter -  Month -  Date].CurrentMember,
      [Measures].[Amount GL]
     )
 ) 

To track down what is happening try adding these measures into your cube and then put them in the columns next to the troublesome column. 要跟踪正在发生的事情,请尝试将这些度量添加到多维数据集中,然后将其放在麻烦的列旁边的列中。 What values do they return?.I suspect it might not return what you expect: 它们返回什么值?我怀疑它可能不会返回您期望的值:

[Measures].[exploratory] AS
    [Date].[Year -  Quarter -  Month -  Date].CurrentMember.member_caption
[Measures].[exploratory2] AS
    [Chart Of Accounts].[Account Sub Group].CurrentMember.member_caption

Also I'm wondering if rather than going back 100 years maybe you could simplify by using null : 我也想知道是否可以不使用100年而简化使用null

IIF
 (
  [Chart Of Accounts].[Account Sub Group].CurrentMember 
   IS
  [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
  [Measures].[Amount GL YTD], 
  SUM
     (
      NULL:[Date].[Year -  Quarter -  Month -  Date].CurrentMember,
      [Measures].[Amount GL]
     )
 ) 

Edit 编辑

I suspect that on the Grand Total row the currentmember of the hierarchy [Chart Of Accounts].[Account Sub Group] is the [All] member so the boolean condition of the iif is false. 我怀疑在[总计]行上,层次结构[Chart Of Accounts].[Account Sub Group][All]成员,因此iif的布尔条件为false。 You could try amending to this: 您可以尝试对此进行修改:

IIF
 (
  (
   [Chart Of Accounts].[Account Sub Group].CurrentMember 
   IS [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR]
  )
  OR
  (
   [Chart Of Accounts].[Account Sub Group].CurrentMember 
   IS [Chart Of Accounts].[Account Sub Group].[All]
  ) 
  ,[Measures].[Amount GL YTD] 
  ,SUM
     (
      NULL:[Date].[Year -  Quarter -  Month -  Date].CurrentMember,
      [Measures].[Amount GL]
     )
 ) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM