MDX函數之 - Descendants

本文說明的是在OLAP多維分析系統中用到MDX語句函數Descendants。
Descendants 漢語是 後代 的意思(百度翻譯的)。
MDX官網的解釋:返回成員在指定級別或距離上的後代集,可以選擇包括或不包括其他級別的後代
詳細的用法請參考下面的網址:
https://msdn.microsoft.com/zh-cn/library/ms146075.asp
這裏提供一些例子來說明一下這個函數:

 前提:有一個時間維表(年季月日),一個事實表包含(時間字段和銷售額字段)

    第一種情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[月],
                                               SELF 
                                               )  ON ROWS

          FROM [事實表]

         SELF 只返回的是 2014年所有的月份從1月到12月份的數據,如下:

                     

    第二情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014].[1],

                                               [時間.年季月日].[],
                                               AFTER
                                               )  ON ROWS

          FROM [事實表]

         AFTER只返回的是 2014年第一季度以後的成員,即:1月所有日期,2月所有日期,3月所有日期。如下:

        

 

情況:

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[],
                                               BEFORE
                                               )  ON ROWS

          FROM [事實表]

         BEFORE只返回的是 2014年月份以前的所有成員,即:年和季度成員。如下:

         

  

第四情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[],
                                               BEFORE_AND_AFTER
                                               )  ON ROWS

          FROM [事實表]

         BEFORE只返回的是 2014年月份以前的所有成員和以後的成員,不包含月份,即:年,季度,日成員沒有月成員。如下:

       

 

第五情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[],
                                               SELF_AND_AFTER
                                               )  ON ROWS

          FROM [事實表]

         BEFORE只返回的是 2014年月份和以後的成員,包含月成員,即:月,日成員。如下:

             

 

 

第六情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[],
                                               SELF_AND_AFTER
                                               )  ON ROWS

          FROM [事實表]

         BEFORE只返回的是 2014年月份和以前的成員,包含月成員,即:年,季度,月成員。如下:

          

 

第七情況 :

          SELECT  [Measures].[sales] ON COLUMNS,

                       Descendants ( [時間.年季月日].[2014],

                                               [時間.年季月日].[],
                                               SELF_AND_AFTER
                                               )  ON ROWS

          FROM [事實表]

         BEFORE只返回的是 2014年月份和以前的成員,包含月成員,即:年,季度,月,日所有成員。如下:

       

 

第八情況 :  LEAVES  暫時沒有研究明白,希望留言告之。

 

        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章