SQLServer2008MDX应用之检索集合中的元组

上次我们介绍了:SQL Server 2008 MDX应用之组装有序集合,本文我们主要介绍一下SQL Server 2008 MDX应用之检索集合的***一个或***个元组的操作,接下来就让我们一起来了解一下这部分内容。

创新互联建站是一家专业提供唐县企业网站建设,专注与做网站、成都做网站成都h5网站建设、小程序制作等业务。10年已为唐县众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

我们用到两个函数TopCount(http://msdn.microsoft.com/zh-cn/library/ms144792.aspx)和BottomCount(http://msdn.microsoft.com/zh-cn/library/ms144864.aspx)

注意:这两个函数总是会打乱层次结构。

例6-11

 
 
 
 
  1. SELECT  
  2. {([Measures].[Reseller Sales Amount])} ON COLUMNS,  
  3. TopCount(  
  4. {[Product].[Subcategory].[Subcategory].Members},  
  5. 5,  
  6. ([Measures].[Reseller Sales Amount])  
  7. ) ON ROWS  
  8. FROM [Step-by-Step];  
  9.  
  10. /*  
  11. Reseller Sales Amount  
  12. Road Bikes $29,358,206.96  
  13. Mountain Bikes $26,492,684.38  
  14. Touring Bikes $10,451,490.22  
  15. Mountain Frames $4,713,672.15  
  16. Road Frames $3,849,853.34  
  17. */ 

注意,未指定顺序时,默认按升序排列。

Head函数(http://msdn.microsoft.com/zh-cn/library/ms144859(v=SQL.105)),返回集中位置靠前的指定数目的元素,同时保留重复项。Head 函数从指定集的开始处返回指定的元组数目。并保留元素的顺序。Count 的默认值为 1。如果指定的元组数目小于 1,则 Head 函数返回空集。如果指定的元组数目超过了集中的元组数目,则此函数返回原始集。

Tail函数(http://msdn.microsoft.com/zh-cn/library/ms146056.aspx),Tail 函数从指定集的结尾处返回指定的元组数目。 会保留元素的顺序。 Count 的默认值为 1。如果指定的元组数目小于 1,则该函数返回空集。 如果指定的元组数目超过了集中的元组数目,则此函数返回原始集。

例6-12

 
 
 
 
  1. SELECT  
  2. {([Measures].[Reseller Sales Amount])} ON COLUMNS,  
  3. Tail(  
  4. Order(  
  5. {[Product].[Subcategory].[Subcategory].Members},  
  6. ([Measures].[Reseller Sales Amount]),  
  7. BDESC  
  8. ),  
  9. 5  
  10. ) ON ROWS  
  11. FROM [Step-by-Step];  
  12.  
  13. /*  
  14. Reseller Sales Amount  
  15. Tires and Tubes $925.21  
  16. Bike Stands (null)  
  17. Fenders (null)  
  18. Lights (null)  
  19. Panniers (null)  
  20. */ 

Item函数(http://msdn.microsoft.com/zh-cn/library/ms145501.aspx),下面,我们看一个比较复杂的例子

例6-13

 
 
 
 
  1. WITH  
  2. MEMBER [Measures].[Top Product Sales] AS  
  3. {  
  4. EXISTING  
  5. TopCount(  
  6. [Product].[Product].[Product].Members,  
  7. 1,  
  8. ([Measures].[Internet Sales Amount])  
  9. ) *  
  10. {[Measures].[Internet Sales Amount]}  
  11. }.Item(0)  
  12. ,FORMAT_STRING="Currency" 
  13. MEMBER [Measures].[Top Product Name] AS  
  14. {  
  15. EXISTING  
  16. TopCount(  
  17. [Product].[Product].[Product].Members,  
  18. 1,  
  19. ([Measures].[Internet Sales Amount])  
  20. )  
  21. }.Item(0).Item(0).Name  
  22. SELECT  
  23. {  
  24. ([Measures].[Internet Sales Amount]),  
  25. ([Measures].[Top Product Sales]),  
  26. ([Measures].[Top Product Name])  
  27. } ON COLUMNS,  
  28. {  
  29. ([Date].[Calendar Year].[CY 2001]),  
  30. ([Date].[Calendar Year].[CY 2002]),  
  31. ([Date].[Calendar Year].[CY 2003]),  
  32. ([Date].[Calendar Year].[CY 2004])  
  33. } ON ROWS  
  34. FROM [Step-by-Step]; 

上例中综合运用了本节和上节的几个常用函数,大家可以自行分析。

关于SQL Server 2008 MDX应用之检索集合中的元组的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

分享文章:SQLServer2008MDX应用之检索集合中的元组
URL标题:http://www.csdahua.cn/qtweb/news19/215369.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网