MDX表达式 CASE when 对维度判断如何实现

0
比如想实现 上市月数为1 则 20%  为2 则 40%  ~~~~~
上市月数是一个维度属性,类似下方,出不了数据  ,换成[新旧货.已上市月数] is  [1] 也不行,这个判断怎么写?
case  [新旧货.已上市月数]
 when [1]  then 0.2
when  [2]  then 0.3
when  [3]  then 0.4
end
已邀请:
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-25 回答

With Member [Measures].[新旧货.已上市月数M]
As
Case [新旧货.已上市月数].CurrentMember.Name
   When [新旧货.已上市月数].&[1].Name Then "0.2"
   When [新旧货.已上市月数].&[2].Name Then "0.3"
   When [新旧货.已上市月数].&[3].Name Then "0.4"
   When [新旧货.已上市月数].&[4].Name Then "0.5"
Else "Null"
End

Select
{[Measures].[新旧货.已上市月数M]} on columns,
{[新旧货.已上市月数].Members} on rows
from Cube

维度的写法改成你那边的真实情况,再试一下
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-25 回答

按照这个格式改一下:
with member [Measures].[产品A占比区间] as 
    case  when [Measures].[产品A占比]=null then null
        when [Measures].[产品A占比]<0.3 then '30%以下' 
        when  [Measures].[产品A占比]>=0.3 and [Measures].[产品A占比]<0.5 then '30%至50%'
    else '50%以上' end
 

要回复问题请先登录注册