IT技术网www.itjs.cn

当前位置:首页 > 数据库 > SQl Server > SQL Server 2008 MDX应用之检索集合中的元组

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

发布时间:2011-08-19 14:03 来源:未知

上次我们介绍了: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

SELECT  {([Measures].[Reseller Sales Amount])} ON COLUMNS,  TopCount(  {[Product].[Subcategory].[Subcategory].Members},  5,  ([Measures].[Reseller Sales Amount])  ) ON ROWS  FROM [Step-by-Step];   /*  Reseller Sales Amount  Road Bikes $29,358,206.96  Mountain Bikes $26,492,684.38  Touring Bikes $10,451,490.22  Mountain Frames $4,713,672.15  Road Frames $3,849,853.34  */ 

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

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

SELECT  {([Measures].[Reseller Sales Amount])} ON COLUMNS,  Tail(  Order(  {[Product].[Subcategory].[Subcategory].Members},  ([Measures].[Reseller Sales Amount]),  BDESC  ),  5  ) ON ROWS  FROM [Step-by-Step];   /*  Reseller Sales Amount  Tires and Tubes $925.21  Bike Stands (null)  Fenders (null)  Lights (null)  Panniers (null)  */ 

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

例6-13

WITH  MEMBER [Measures].[Top Product Sales] AS  {  EXISTING  TopCount(  [Product].[Product].[Product].Members,  1,  ([Measures].[Internet Sales Amount])  ) *  {[Measures].[Internet Sales Amount]}  }.Item(0)  ,FORMAT_STRING="Currency" MEMBER [Measures].[Top Product Name] AS  {  EXISTING  TopCount(  [Product].[Product].[Product].Members,  1,  ([Measures].[Internet Sales Amount])  )  }.Item(0).Item(0).Name  SELECT  {  ([Measures].[Internet Sales Amount]),  ([Measures].[Top Product Sales]),  ([Measures].[Top Product Name])  } ON COLUMNS,  {  ([Date].[Calendar Year].[CY 2001]),  ([Date].[Calendar Year].[CY 2002]),  ([Date].[Calendar Year].[CY 2003]),  ([Date].[Calendar Year].[CY 2004])  } ON ROWS  FROM [Step-by-Step]; 

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

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

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