判断维度成员是否为空的mdx

本文介绍了使用MDX(多维表达式)处理NULL值的方法,通过两种不同的方式实现当GPS维度成员不存在时计算成员显示为0的效果。适用于在OLAP环境中处理缺失或空维度成员的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比如:
orderInfo表
gps sales name
0 100 admin
1 50 admin
0 100 admin

新建一个计算成员1,要求 gsp为0的销售量。
计算成员1=([Order Info].[Gps].&[0],[Measures].[Sales])

orderinfo既是事实又是维度。如果orderinfo表没有数据,那么[Order Info].[Gps]下就没有维度成员。如果有值,就像上面那样有0和1.
问题:如果gps这个维度成员没值,计算成员1为0,否则计算成员1为gps为0的销售量。

 null 、nonempty、currentmember 都试过,计算成员1显示#value!
 
在orderInfo表有数据时,
([Order Info].[Gps].&[0],[Measures].[Sales])值显示正确;

在orderInfo表无数据时,
([Order Info].[Gps].&[0],[Measures].[Sales])显示#value!
 
 

 

使用mdx有2种方法:

(一):
with member [measures].[rates] as
iif(
[Order Info].[Gps].&[0] is null
,0
,([Order Info].[Gps].&[0],[Measures].[Sales])
)
)
select [measures].[rates] on 0 from [Fact_OrderInfo]

(二):
with member [measures].[rates] as
(
iif(
isempty( ([Order Info].[Gps].&[0],[Measures].[Sales]) )
,0
,([Order Info].[Gps].&[0],[Measures].[Sales])
)
)
select [measures].[rates] on 0 from [Fact_OrderInfo]
 

 

转载于:https://www.cnblogs.com/tianshansoft/archive/2012/02/15/tianshansoft-bi.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值