热门标签 | 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应用之组装有序集合的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

推荐阅读
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 精选30本C# ASP.NET SQL中文PDF电子书合集
    欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文深入分析了 USDC 的稳定性和可能的救援措施,探讨了在硅谷银行破产后 USDC 面临的风险以及行业内的反应。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 在安装 SQL Server 时,选择混合验证模式可以提供更高的灵活性和管理便利性。如果您已经安装了 SQL Server 并使用单一的 Windows 身份验证模式,可以通过以下步骤将其更改为混合验证模式。 ... [详细]
  • 本文介绍了在 SQL Server 2012 客户端中格式化 SQL 查询语句的多种方法,包括内置功能和第三方工具,帮助用户提高代码可读性和维护性。 ... [详细]
  • 1,bat由来:BATCH,一批,成批作业,批处理文件后缀BAT就取的前三个字母。2,Pingsz.tencent.com>a.txt>的作用为, ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 优化后的摘要:本文详细分析了当前面临的挑战和机遇,结合具体实例探讨了如何通过创新和改革来推动长期可持续发展。文中还介绍了多种可行的解决方案,并强调了在不同阶段实施这些方案的重要性。 ... [详细]
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社区 版权所有