代码之家  ›  专栏  ›  技术社区  ›  tone

如何在analysisservices中获得每个层次的总百分比

  •  0
  • tone  · 技术社区  · 8 年前

    我继承了多维OLAP多维数据集(SQL Server 2014),目前需要扩展它以生成所需的输出。

    2018年—2018年—2018年第3季度—2018年7月—2018年—澳大利亚—维多利亚—3000

    或者,我想借一整本书的日期,或者我想借一整本书。

    贷款帐簿比例是计算层次结构中特定级别的余额除以特定日期贷款帐簿的全部余额。

    如果您查看的是2017年2月和维多利亚州,那么我想看看2017年2月维多利亚州的贷款账簿占2017年2月整个余额的比例。

    如果你看2016年1月和澳大利亚,那么你会看到100%是该月的贷款总额。

    贷款帐簿的比例将始终在选定的当月计算。计算几个月或几个季度的贷款占比是没有意义的,但我不在乎这是否是我努力实现目标的副作用。

    目前,我创建了一个名为“贷款账簿比例”的计算成员,如下所示:

    Case  
        When IsEmpty( [Measures].[Current Balance] )   
        Then 0  
        Else ( [Geography].[Geography Key].CurrentMember,  
               [Measures].[Current Balance]) /  
             ( [Geography].[Geography Key].[All],   
               [Measures].[Current Balance] )  
        End
    

    Cube image

    问题是它(1)没有考虑当前月份,(2)只在最底层的邮政编码级别显示一个比例值。我在这里捏造了数字。但是,例如,维多利亚州应显示为2018年7月贷款账簿的36%,而目前则显示为100%。

    我怎样才能做到这一点?

    1 回复  |  直到 8 年前
        1
  •  0
  •   tone    8 年前

    好吧,我想我已经想好了。我的代码是:

        Case  
        When IsEmpty( [Measures].[Current Balance] )   
        Then 0  
        Else ( [Geography].[Geography Key].CurrentMember,  
               [Measures].[Current Balance]) /  
             ( Root([Geography].[Geography Key].[(ALL)].[ALL]),   
               [Measures].[Current Balance] )
        End
    

    我不知道它有多正确;我几乎是在一个有成效的东西之前蹒跚而行!