MDX重点函数

成员函数


1、.CurrentMember

  • 获取运行时当前的成员,用法:<Dimension>.CurrentMember 。

2、.Parent

  • 获取运行时当前的成员的父成员。用法:<Member>.Parent。

3、.PrevMember/.NextMember

  • 返回当前成员的前一个/后一个成员。<Member>.FirstChild/LastChild

 4、.FirstChild/.LastChild

  • 返回当前成员的第一个/最后一个子成员。语法:<Member>.FirstChild/LastChild

5、.FirstSibling/LastSibling

  • 返回当前同级的第一个/最后一个成员。语法:<Member>.FirstSibling/LastSibling。
  • 相当于 <Member>.Parent.FirstChild/.lastChild

 6、Ancestor

  • 返回特定级别的祖先成员。语法如下:
  • Ancestor(<Member>, <Level>)
  • Ancestor(<Member>, <Numeric Expression>)
  • ([Measures].[总电量], [运营类型大类].[运营类型大类].[运营类型大类].CurrentMember)/ sum(Ancestor([运营类型大类].[运营类型大类].[运营类型大类].CurrentMember,1))

7、LAG

  • 返回当前成员开始往前数的本层的第几个成员,语法:<Member>.Lag(n)。
  • n是索引,0是它本身,1是前一个(.PrevMember)。

8、OpeningPeriod/ClosingPeriod

  • 返回某个层次上第一个/最后一个后代成员,语法:OpeningPeriod([<Level>[, <Member>])。

9、ParallelPeriod

  • 返回一个成员同层次对应位置的成员。语法:ParallelPeriod([<Level>[, <n>[, <Member>]]])。
  • 在时间维度上取同期(如上年同期)等时候要用到它。
  • 使用 PARALLELEPRIOD(Level, N, Member) 先把同比值查询出来,Level 指定的是年,1 表示 1年前,Member 就是指当前成员并且表示月。所以整个表达的意思就是查询当前成员1年前的相对应的那个月的 Reseller Sales Amount 的值是多少

其它函数


1、IS

  • 判断是否为同一个对象。语法: object is object2。

2、IsEmpey

  • 判断一个值是否为空。语法:IsEmpey(表达式)。

3、IIF

  • 根据条件返回值,类似 Excel 的 If 函数。语法:iif(<布尔表达式>, <值 1>, <值 2>)。
  • 如果布尔表达式为真,返回值 1,否则,返回值 2。

4、ITEM

  • 根据索引返回集合中元素。语法:item(set, <index>)。
  • 返回类型一般为元组。

计算成员


  • 假设你想创建一个度量,它的值不是来自事实表的列,而是来自一个 MDX 公式。一种方式使用 with member 字句,如下图:
  • 如果每个 MDX 查询中包含这个子句,更好的办法是,把这个成员定义到schema中,作为Cube定义的一部分,如下:
  • FORMAT_STRING 属性值同样可以使用一个表达式。当格式化一个特定单元格时,首先这个表达式会被运算以产生一个格式字符串,然后把这个格式字符串应用到单元格。下面使用一个条件化的格式字符串:
  • <CalculatedMemberProperty name="FORMAT_STRING" expression="Iif(Value < 0,'|($#,##0.00)|style=red', '|$#,##0.00|style=green')"/>
  • 计算成员的另外一个属性是 DATATYPE,可以有 String、Integer 或 Numeric 这些取值,如下:
  • 可以给计算成员指定 SOLVE_ORDER 属性,用于确定计算时的优先级,如下:
  • SOLVE_ORDER 属性是一个整数,默认是 0,值大者胜出

MDX函数的更多相关文章

  1. MDX函数(官方顺序,带示例)

    MDX函数(官方顺序) 1.  AddCalculatedMembers (MDX) 返回通过将计算成员添加到指定集而生成的集. 语法: AddCalculatedMembers(Set_Expres ...

  2. [译]SSRS 编写带参数的MDX报表

    编写MDX报表长久以来对于报表人员来说都比较痛苦. 当然如果你用查询设计器(Query Designer) 直接拖拉数据集那就很方便,但是你们有没有想过查询设计器是怎么创建MDX的.或者创建的参数是如 ...

  3. SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 2013-10-09 23:09 by BI Wor ...

  4. MDX Step by Step 读书笔记(九) - Working with Time 处理时间

    开篇介绍 这一章节主要用到的 MDX 函数: PeriodsToDate( [Level , [Member]] ) - 从指定级别的范围内,返回与指定成员同一级别,从第一个期间开始到指定成员结束的期 ...

  5. 微软BI 之SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    基于数据仓库上的 SSRS 报表展示,一般可以直接通过 SQL 查询,存储过程,视图或者表等多种方式将数据加载并呈现在报表中.但是如果是基于 Cube 多维数据集的数据查询,就不能再使用 SQL 的语 ...

  6. MDX Step by Step 读书笔记(八) - Navigating Hierarchies 层次结构导航

    开篇介绍 本章主要内容包括: 解释各种不同的 MDX 导航函数的使用: Parent, Children, FirstChild, LastChild, Siblings, FirstSibling, ...

  7. FocusBI:MDX检索多维模型

    微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...

  8. SSAS——MDX基础

    一.基本概念 MDX:一种查询语言,从多维的数据集单元格中检索数据.支持两种不同的模式: 1.表达式语言:定义和操纵Analysis Services对象和数据以计算值 2.查询语言:从Analysi ...

  9. BI之SSAS完整实战教程5 -- 详解多维数据集结构

    之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将 ...

随机推荐

  1. (18)ProcessPoolExecutor进程池

    # 新版本的进程池 ProcessPoolExecutor # 实例化进程池 ProcessPoolExcutor(cpu_count) # 异步提交任务 submit / map # 阻塞直到任务完 ...

  2. PAT 1069 The Black Hole of Numbers

    1069 The Black Hole of Numbers (20 分)   For any 4-digit integer except the ones with all the digits ...

  3. day17_python_1124

    01 昨日内容回顾 包: 1,在内存中创建一个以包命名的空间. 2,执行包的__init__文件将文件中的名字加载到包的名称空间. 3,通过包名.名字(变量,函数,类名)方式调用这些内容. aaa.x ...

  4. C# 用 WebClient 的 Post 方法向 WebServer 传输数据

    帮朋友做一个通过Web简单传输数据的例子,百度了一下抄了段代码,完成,效果如下: 其中textBox1里面是客户端需要传输过去的数据,textBox2里面是接收到的返回数据. 代码如下: using ...

  5. ansible批量管理工具的搭建与简单的操作

    ansible的安装 # [root@localhost ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@localhost ...

  6. window配置 mysql 详细步骤

    1.配置环境变量:右击“我的电脑”-->"高级"-->"环境变量" 3)在(系统变量)path变量(已存在不用新建)添加变量值:G:\MySQL\m ...

  7. xenserver挂载新硬盘

    注意:新加硬盘请不要加入raid,否则不认盘 一: 1.1:查看磁盘列表 fdisk -l [root@xenserver zz]# fdisk -l Disk /dev/sdb: 7999.4 GB ...

  8. 前端修炼の道 | <div> 标签简介

    <div> 标签是最基本的,同时也是最常用的标签. 该标签是一个双标签,出现在主体区域中,主要作为一个容器标签来使用,在 <div> 标签中可以包含除 <body> ...

  9. Spring 源码学习(4)—— bean的加载part 1

    前面随笔中,结束了对配置文件的解析工作,以及将配置文件转换成对应的BeanDefinition存储在容器中.接下来就该进行bean的加载了. public Object getBean(String ...

  10. 一、fopen与fclose

    需要包含的头文件为stdio.h fopen 原型:FILE *fopen(const char *path, const char *mode); 返回:打开成功则返回文件流指针,失败则返回空 参数 ...