在不更改度量名称的情况下,将空值替换为“ 0”

问题描述

如果我重命名我的度量并使用COALESCEEMPTY,则效果很好,但是我需要保持度量的真实名称。是否有人知道如何用0代替空值而不必重命名度量。

WITH 
    MEMBER [Measures].[col_] AS COALESCEEMPTY([Measures].[col],0)
    MEMBER [Measures].[col2_] AS COALESCEEMPTY([Measures].[col2],0) 
    MEMBER [Measures].[col3_] AS COALESCEEMPTY([Measures].[col3],0) 
Select 
    NON EMPTY {[Measures].[col_],[Measures].[col2_],[Measures].[col3_]} 
    DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME,MEMBER_TYPE ON COLUMNS,NON EMPTY Hierarchize({DrilldownLevel({[Region].[Region].[All]})}) 
    DIMENSION PROPERTIES PARENT_UNIQUE_NAME,MEMBER_TYPE ON ROWS FROM (
    SELECT ({[Category].[Category].&[Oil]},{[Year].[Year].&[2019]}) 
ON COLUMNS FROM [SIIBPAGESATDIREKTEF]) CELL PROPERTIES VALUE

解决方法

有两种更好的方法可以实现目标,而又无需制定新措施:

  1. 在度量属性中使用format_string属性。

FormatString属性接受以分号(;)分隔的四个参数。第一个参数是应如何格式化正值,第二个参数是应如何格式化负值,第三个参数是应如何格式化0值,第四个参数是应如何格式化NULL。第四个参数是我们感兴趣的参数! 这是我如何格式化转销商销售金额的示例:“#,## 0.00;-#,## 0.00 ;; 0”。

enter image description here

  1. 在“计算”标签中使用scoope语句:

    SCOPE([Measures]。[col_]); THIS = IIF(ISEMPTY([Measures]。[col _]),0,[Measures]。[col_]); 结束范围;

访问:https://sqldusty.com/2014/07/15/how-to-display-0s-instead-of-null-in-your-ssas-cube-mdx-query-results/