[SQL Server2008]MDX查询语句
在Essbase中使用MDX只能用于查询,尚不能来操作Cube(MS SSAS中可以使用MDX来操作Cube的),所以这里只学习MDX的Select语句。
在学习的过程中,我觉得最有难度的地方有两个。
一是,对OLAP多维的理解。如同学习SQL一样,SQL作用的对象是表,表的结构都是二维的,标识行列即可;但是MDX作用的对象是多维数据库,那么就得理解多维数据库的维度,层级,成员,以及如何在多维数据库中定位不同层级的成员。
二是,理解MDX查询语句的结构及术语的含义。学习SQL时,我们常提到表,字段,那么MDX中呢,想必这些术语必须理解,例如:Cube,Slice,Axis,Set,Tuple,Members
我的学习经历是这样的,首先了解MDX语句的特点及功用。
“MDX全称是Mutil-Dimensional Expressions,即多为表达式。MDX是一种和SQL类似的语言,它也可以用于查询、计算和定义一些元数据。只不过SQL是基于OLTP的,而MDX是基于OLAP的,也就是说,MDX是对多维数据进行查询的。和其它的OLAP语言不同,MDX并不完全是一种报告形式语言。但用MDX查询出来的结果仍然可以在客户端程序中以表格形式进行展现。MDX和SQL一样,也有很多不同功能的API来支持MDX,最常用到的就是XML API。”
上面的一段话是从网上摘录来的,给MDX做了一个定义。
接下来学习MDX查询语句的结构及组成。
[<with_section>]
SELECT [<axis_specification>
[, <axis_specification>...]]
[from [<cube_specification>]]
[WHERE [<slicer_specification>]]
这个结构就是MDX查询语句的通用结构,从中要理解哪些是关键字以及关键字的顺序,WITH section、Axis、Cube、Slicer的位置。这些都是MDX的语法规定,所以要牢记各自的位置。
然后学习的是以上MDX语句结构中各个位置的含义。
<with_section>的位置用于设定自定义的计算。有两种运用,WITH SET…,WITH MEMBER…,在复杂的MDX查询语句中经常被用到。
<axis_specification>的位置用于设定轴。这个轴是反映在MDX语句的输出报表上的。常用的就是列、行、页,如下图所示:
<cube_specification>位置用于指定查询用的Cube,只能指定一个。
<slicer_specification>位置用于指定限制条件,可以是多个限制条件,反映在Cube中称为切片。
&n
相关文档:
转自
http://topic.csdn.net/t/20050110/09/3711952.html
access中时间要用#,不是双引号
select * from kc where rq < #2000-01-01# and rq>#2002-01-01#
不要用between,它的效率泰低
使用# 而不是 ......
巧用SQL的全局临时表防止用户重复登录
文章来自:http://www.cnblogs.com/lindayyh/archive/2010/04/05/1704763.html
在我们开发商务软件的时候,常常会遇到这样的一个问题:怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门,更是要限制用户以其工号身份多次登入。
可能会有人说在用户信息表中加一字段判 ......
下载解压了Oracle SQL Developer工具,运行时,启动不了,报错信息如下:
---------------------------
Unable to create an instance of the Java Virtual Machine
Located at path:
<SQLDEVELOPER>\jdk\jre\bin\client\jvm.dll
---------------------------
是JVM参数设置的问题,我的解决方案如下:
<SQ ......
返回
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
语法
DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得 ......
USE [master]
GO
ALTER DATABASE [Database_Name] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [Database_Name] SET RECOVERY SIMPLE
GO
USE [Database_Name]
&nb ......