SSAS MDX语句中CurrentMember的使用问题

0
做计算成员的时候,会根据需要经常使用Currentmember 

假设一个简单的例子
某指标 定义为:  
AGGREGATE(
CROSSJOIN( [维度A].[层级].currentmember   ,XXXXX)
,XXXXX)

那么做MDX查询时,如:
select
[measures].[abcd] on 0, 
 [维度B].[层级].MEMBERS ON 1 
FROM CUBE
WHERE
([维度A].[层级].[成员]
)
这种情况时,是没有问题的. 

由于MDX语句的拼接是由程序根据条件情况自动拼接的,再某些情况下.会出现
WHERE({[维度A].[层级].[成员1],[维度A].[层级].[成员2],[维度A].[层级].[成员3]....})
这种情况,那么,这个指标就会报错了. 只能根据需要,重新定义一个临时成员生成新的MDX查询语句. 

那么在这里请教了, 有没有什么比较好的办法.让这个计算成员的 CROSSJOIN 里 能接收到成员集合?从而达到
CROSSJOIN({MEMBERS},XXX) 的效果?
毕竟,如果能在计算成员定义里修改,比修改程序要省事得多. 

拜谢!!!
已邀请:
0

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

我觉得你可以写一个Set,不要用Member做
如果是每次需要重新过滤的话,用 Dynamic的

要回复问题请先登录注册