zoukankan      html  css  js  c++  java
  • 浅谈MDX处理空值NULL及格式化结果

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

    以下示例图为格式化处理空值之前的状态:

    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处理空值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

  • 相关阅读:
    CSS3的box-sizing属性
    html5 --基础笔记2
    html5--基础笔记
    CSS3--阴影,渐变,背景图片
    响应式布局--流式布局
    angular中的this指向问题
    angular中控制器之间的通讯方式
    angular中的$http配置和参数
    console
    h5表单验证的css和js方法
  • 原文地址:https://www.cnblogs.com/pengzhiyong/p/3690840.html
Copyright © 2011-2022 走看看