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

 
比如:
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的销售量。
请教 如何写这个计算成员1的mdx?
谢谢!!

 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]

 为什么用mdx可以读出正确的结果,而写成计算成员放到sqlserver里面浏览 就会显示错误value呢??

你可能感兴趣的:(判断)