SQL Server 2008 MDX应用之检索集合中的元组

数据库 SQL Server
本文我们主要介绍了SQL Server 2008 MDX应用之检索集合中的元组的方法,包括检索一个集合的最后一个或第一个元组的操作的示例,希望能够对您有所帮助。

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

我们用到两个函数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应用之检索集合中的元组

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

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

【编辑推荐】

  1. SQL Server多表查询优化方案总结
  2. SQL Server数据库ISNULL函数的应用实例
  3. SQL Server数据库DATEPART的语法及使用实例
  4. SQL Server根据子节点查询所有父节点的代码示例
  5. SQL Server脏读方式数据提取之NOLOCK和READPAST
责任编辑:赵鹏 来源: 博客园
相关推荐

2011-08-19 13:46:22

SQL Server 组装有序集合

2011-03-11 10:35:31

SQL锁定SQL Server

2011-02-28 13:19:50

SQL Server SQL死锁

2011-08-19 14:38:22

SQL Server 2008递归查询

2011-03-11 13:26:32

SQL ServerBlocking阻塞

2011-08-19 15:29:10

SQL Server 元数组

2011-08-19 15:48:13

SQL Server 结果集Sets使用技巧

2011-09-01 13:24:42

SQL Server 呈现GeoRSS订阅的Bing Maps

2011-08-19 15:13:36

SQL Server MDX查询

2009-05-18 18:20:14

虚拟化Hyper-VWindows ser

2009-04-16 18:15:19

动作审核审核活动SQL Server

2009-04-16 17:44:31

2011-02-18 17:31:18

SQL Server

2010-11-10 14:18:15

SQL SERVER全

2012-04-16 09:55:38

SQL Server

2012-04-06 10:13:08

SQLSQL Server

2010-10-14 09:32:52

SQL Server

2009-06-22 10:22:57

SQL Server

2013-03-13 09:53:50

SQL Server

2010-11-12 13:08:36

动态sql语句
点赞
收藏

51CTO技术栈公众号