热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如果在SQLServer2008MDX中组装有序集合

SQLServer2008MDX应用之组装有序集合是本文我们主要要介绍的内容,接下来我们通过一些具体的例子来介绍这一过程,希望能够对您有所帮助。打开MDX查询编辑器,如下:例6-1SELECT{([Measures].[ResellerSalesAmount])}ONCOLUMNS,{[Product].[Produc
SQL Server 2008 MDX应用之组装有序集合是本文我们主要要介绍的内容,接下来我们通过一些具体的例子来介绍这一过程,希望能够对您有所帮助。
打开MDX查询编辑器,如下:
例6-1
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
{[Product].[Product].[Product].Members} ON ROWS  
FROM [Step-by-Step]; 
查询结果:

我们修改排序,如下:
例6-2
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
Order(  
{[Product].[Product].[Product].Members},  
([Measures].[Reseller Sales Amount]),  
DESC  
) ON ROWS  
FROM [Step-by-Step]; 

注意排序字段,这里使用了Order函数(http://msdn.microsoft.com/zh-cn/library/ms145587.aspx)。
例6-3
SELECT  
{  
([Measures].[Reseller Sales Amount]),  
([Measures].[Internet Sales Amount])  
} ON COLUMNS,  
Order(  
{[Product].[Product].[Product].Members},  
VBAMDX!ABS(  
([Measures].[Reseller Sales Amount]) -  
([Measures].[Internet Sales Amount])  
),  
DESC  
) ON ROWS  
FROM [Step-by-Step]; 
注意,我们使用了上一节提到的VBA函数,结果以两列之差的绝对值为排序依据。
SQL Server 2008 MDX应用之组装有序集合
注意:使用Order还可以突破分层限制。
例6-4
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
{[Product].[Subcategory].[Subcategory].Members} ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
例6-5
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
{[Product].[Category].[Category].Members} *  
{[Product].[Subcategory].[Subcategory].Members} ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
再进一步,看一个双排序的例子
例6-6
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
Order(  
{[Product].[Category].[Category].Members} *  
{[Product].[Subcategory].[Subcategory].Members},  
([Measures].[Reseller Sales Amount]),  
DESC  
) ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
在上面的查询中,交叉联接使用默认排序,而且后面指定了([Measures].[Reseller Sales Amount])排序,但是大家注意到没有,这一列并没有按照指定的数值排序,为什么呢?因为默认的ASC和DESC是分层的(hierarchical),换句话说,这些元组的前一个成员的排序被保留了。为了打乱这个层次结构,可以使用BASC和BDESC(http://msdn.microsoft.com/zh-cn/library/ms145587(v=SQL.105))。
例6-7
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
Order(  
{[Product].[Category].[Category].Members} *  
{[Product].[Subcategory].[Subcategory].Members},  
([Measures].[Reseller Sales Amount]),  
BDESC  
) ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
OK!这下消停了。
顺便,我们提一下Hierarchize函数(http://msdn.microsoft.com/zh-cn/library/ms145981.aspx),该函数可以按层次结构的顺序组织指定集中的成员,返回集的有效多维表达式 (MDX)。
我们看一个例子
例6-8
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
Hierarchize(  
{  
([Product].[Product Categories].[Subcategory].[Road Bikes]),  
([Product].[Product Categories].[All Products]),  
([Product].[Product Categories].[Subcategory].[Mountain Bikes]),  
([Product].[Product Categories].[Category].[Bikes]),  
([Product].[Product Categories].[Subcategory].[Touring Bikes])  
}  
) ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
如果定义POST标志,则 Hierarchize 函数按非自然顺序对一定级别的成员进行排序。 也就是说,子成员优先于他们的父级。
例6-9
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
Hierarchize(  
{  
([Product].[Product Categories].[Subcategory].[Road Bikes]),  
([Product].[Product Categories].[All Products]),  
([Product].[Product Categories].[Subcategory].[Mountain Bikes]),  
([Product].[Product Categories].[Category].[Bikes]),  
([Product].[Product Categories].[Subcategory].[Touring Bikes])  
},  
POST  
) ON ROWS  
FROM [Step-by-Step]; 
SQL Server 2008 MDX应用之组装有序集合
范围操作符:包含一个默认的排序
例6-10
SELECT  
{([Measures].[Reseller Sales Amount])} ON COLUMNS,  
{[Date].[Calendar].[CY 2001]:[Date].[Calendar].[CY 2004]} ON ROWS  
FROM [Step-by-Step];  
/*  
Reseller Sales Amount  
CY 2001 $8,065,435.31  
CY 2002 $24,144,429.65  
CY 2003 $32,202,669.43  
CY 2004 $16,038,062.60  
*/ 
关于SQL Server 2008 MDX应用之组装有序集合的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • 本文介绍了一个从入门到高手的VB.NET源代码,通过学习这些源代码,可以在21天内成为VB.NET高手。文章提供了下载地址,并提醒读者加入作者的QQ群和收藏作者的博客。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了某点评网的搜索策略,包括名称和地址的匹配策略,模糊匹配的方法以及不同口音和拼音的近似发音。同时提供了一些例子来说明这些策略的应用。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
author-avatar
椰子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有