MDX函数之 - Descendants

本文深入解析了MDX中的Descendants函数,用于获取成员在指定级别或距离上的后代集合。通过多个实例展示了如何根据SELF、AFTER、BEFORE、BEFORE_AND_AFTER、SELF_AND_AFTER等选项筛选不同范围的后代成员,涉及时间维度的数据分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文说明的是在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  暂时没有研究明白,希望留言告之。

 

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值