SQL Server 2008 Analysis Services(OLAP) - 环比、同比

 

--- 同期比较 Cousin

 

登记日期不连续,存在空缺 ===>

            登记日期维度:每月/每天都存在,尽管在事实表中不存在的“天”


 

Case

        When IsEmpty

             (  

               ( 

                 Cousin([Dim Djrq].[YearMonthDay].CurrentMember, [Dim Djrq].[YearMonthDay].CurrentMember.Parent.PrevMember), 

                 [Measures].[Sfzh Distinct Count] 

               ) 

             ) 

        Then Null

 

        Else ( 

               ( [Dim Djrq].[YearMonthDay].CurrentMember,[Measures].[Sfzh Distinct Count]  ) 

               -

               ( Cousin([Dim Djrq].[YearMonthDay].CurrentMember, [Dim Djrq].[YearMonthDay].CurrentMember.Parent.PrevMember),[Measures].[Sfzh Distinct Count]  ) 

             ) 

             /

             ( Cousin([Dim Djrq].[YearMonthDay].CurrentMember, [Dim Djrq].[YearMonthDay].CurrentMember.Parent.PrevMember),[Measures].[Sfzh Distinct Count])

 

End

 

 

 

--- 同期比较 parallelperiod

 

 

--- 同期比较 Generate/DOWSet


 

With Member [Measures].[PrevWeekSales] as

([Measures].[Sales Amount],

Generate(

{[Date].[Date].CurrentMember,Exists([Date].[Date].[Date].Members,[Date].[Day of Week].CurrentMember) as DOWSet}.Item(0),

DOWSet.Item(Rank([Date].[Date].CurrentMember,DOWSet) - 2)).Item(0)

), FORMAT_STRING = "Currency"

select {[Measures].[Sales Amount], [Measures].[PrevWeekSales]} on 0,

{[Date].[Date].&[20010701]:[Date].[Date].&[20010714]} on 1

from [Adventure Works]

 

 

--- 环比


 

Case

 

        When [Dim Djrq].[YearMonthDay].CurrentMember.Level.Ordinal = 0

        Then Null

 

        When IsEmpty

             (  

               ( 

                 [Dim Djrq].[YearMonthDay].CurrentMember.PrevMember, 

                 [Measures].[Sfzh Distinct Count] 

               ) 

             ) 

        Then Null

 

        When IsEmpty

             (  

               ( 

                 [Dim Djrq].[YearMonthDay].CurrentMember, 

                 [Measures].[Sfzh Distinct Count] 

               ) 

             ) 

        Then Null

 

        Else ( 

               ( [Dim Djrq].[YearMonthDay].CurrentMember,[Measures].[Sfzh Distinct Count]  ) 

               -

               ( [Dim Djrq].[YearMonthDay].CurrentMember.PrevMember,[Measures].[Sfzh Distinct Count]  ) 

             ) 

             /

             ( [Dim Djrq].[YearMonthDay].CurrentMember.PrevMember,[Measures].[Sfzh Distinct Count])

 

    End

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值