浅谈MDX处理空值NULL及格式化结果
MDX查询结果中往往会含有“NULL”值,这是某维度下对应的的量值不存在导致的,为了让报表呈现更好的效果,在有些情况下,需要将“NULL”的切片值置换成0,这些置换可以在报表端处理,亦可以在MDX脚本中进行。本文就MDX空值NULL谈谈查询结果格式化处理。
以下示例图为格式化处理空值之前的状态:

对应的MDX脚本为:
SELECT {
[Measures].[TransInQty],
[Measures].[TransOutQty]
} ON 0,
{[Time].[Day].&[2014-04-07T00:00:00]
:[Time].[Day].&[2014-04-10T00:00:00]} ON 1
FROM [RMS]
下面需要将上图中相应切片的(NULL)值变更为0,且将非(NULL)的切片的数字转换成千分位格式,即有以下示图:

对应的MDX处理脚本为:
WITH
MEMBER [Measures].[TransInQtyFormatted]
AS [Measures].[TransInQty],FORMAT_STRING = "#,##0;- #,##0;0;0"
MEMBER [Measures].[TransOutQtyFormatted]
AS [Measures].[TransOutQty],FORMAT_STRING = "#,##0;- #,##0;0;0"
SELECT {
[Measures].[TransInQty],
[Measures].[TransInQtyFormatted],
[Measures].[TransOutQty],
[Measures].[TransOutQtyFormatted]
} ON 0,
{[Time].[Day].&[2014-04-07T00:00:00]
:[Time].[Day].&[2014-04-10T00:00:00]} ON 1
FROM [RMS]
在上述MDX中,属性FORMAT_STRING = "#,##0;- #,##0;0;0"值以分号(;)分隔成四部分格式化,即按正数,负数,0,空值NULL的顺序进行格式化,#为格式化占位符,即当切片值为正数地返回带千分位的正数;当切片值为负数时返回带千分位的负数;当切片值为0时返回0;当切片为空值时返回0,你也可以设成“N/A”。
更多有关FORMAT_STRING参见:FORMAT_STRING Contents
本文首发地址:http://pengzhiyong.com/blog/281.html
浅谈MDX处理空值NULL及格式化结果的更多相关文章
- 浅谈JavaScript中的null和undefined
浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运 ...
- MDX Cookbook 03 - MDX 查询中负数,零和空值 NULL 的格式化处理
FORMAT_STRING 属性在处理计算成员(通常是度量值成员)的时候会经常使用到,比如指定标准 Standard, 货币 Currency 或者 Percent 百分比格式.除此之外,还可以自定义 ...
- 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂
浅谈JS中的!=.== .!==.===的用法和区别 var num = 1; var str = '1'; var test = 1; test == num //tr ...
- 浅谈JAVA集合框架
浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...
- 转【】浅谈sql中的in与not in,exists与not exists的区别_
浅谈sql中的in与not in,exists与not exists的区别 1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...
- 浅谈sql中的in与not in,exists与not exists的区别
转 浅谈sql中的in与not in,exists与not exists的区别 12月12日北京OSC源创会 —— 开源技术的年终盛典 » sql exists in 1.in和exists ...
- [C#]6.0新特性浅谈
原文:[C#]6.0新特性浅谈 C#6.0出来也有很长一段时间了,虽然新的特性和语法趋于稳定,但是对于大多数程序猿来说,想在工作中用上C#6.0估计还得等上不短的一段时间.所以现在再来聊一聊新版本带来 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- 【转】浅谈.net remoting 与webservice
1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以 ...
随机推荐
- jsp连接MySQL操作GIS地图数据,实现添加point的功能
index_map.jsp中的代码: <%@ page language="java" pageEncoding="utf-8"%> <%@ ...
- Delphi XE7下 Intraweb 发布为ASP.NET应用程序
一.XE7下Intraweb开发这里就不说了,重点是在开发Intraweb时与ISAPI不同之处要选择 IW library,编译成DLL文件. 二.网站的配置 1.这是站点的物理路径,c:\site ...
- 文成小盆友python-num15 - JavaScript基础
一.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的 ...
- CFont 字体类
CFont 字体类 初始化函数 CreateFontIndirect 初始化一个由LOGFONT结构给出其特征的CFont对象 CreateFont 初始化用指定特性定义的CFont对象 Create ...
- $provide.decorator
$provide.decorator 是angular 提供的一个功能. 目的是让我们可以扩展或装修我们的服务. var app = angular.module("app", [ ...
- Linux中.a,.la,.o,.so文件的意义和编程实现
Linux中.a,.la,.o,.so文件的意义和编程实现 Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 ...
- java调优随记-堆和栈
基础知识: 关于堆和栈,堆和栈是程序运行的关键,关于堆和栈的定义和解释可自行搜索,我比较认可以程序运行过程中他们扮演的角色作为对比的点:堆是存储的单位,而栈是程序运行时的单位.栈解决的是程序的运行问题 ...
- WIN7笔记本显示连接不可用
如图所示,找不到任何无线网络 解决方法: 不小心把无线关掉而已,笔记本键盘上F5~F12找看看有没有无线标志,有的话要先按下 Fn键不放,再按下那个有无线标志的Fn键.
- VS2010发布、打包安装程序
1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1.“应 ...
- [置顶] 【Git入门之十一】标签管理
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309731 标签是啥?标签就是给某个版本的一个标记. 1.为当前版本创建标 ...