根据另一维度中的条件计算维度中的项目

时间:2012-11-15 17:39:11

标签: ssas mdx

我正在使用两个维度:ProductsColors

例如,要返回与RED颜色相关的所有产品,我可以写:

SELECT {Measures.[Product Count]} ON COLUMNS,
     {[Products].[ID].Members} ON ROWS

FROM MyCube
WHERE [Colors].[Type].&[RED]

这将返回与RED颜色相关的产品,无论它们是否与其他颜色相关联。

现在,我想将那些仅与RED颜色相关联的产品计算在内。例如,如果产品与BLUE和RED相关联,则不应计算。上面的代码段确实无法正常工作。

逻辑条件如下:

统计与红色完全相关的产品

任何人都可以为此展示合适的MDX吗?

1 个答案:

答案 0 :(得分:0)

主要思想是计算与红色以外的颜色相关联的产品数量:

WITH MEMBER [Measures].[only red] AS
    Count([Products].[ID].Members) -
    Count(NonEmpty([Products].[ID].Members, 
                   CrossJoin(Except([Colors].[Type].Members, {[Colors].[Type].&[RED]}), 
                             {[Measures].[Product Count]})))

SELECT [Measures].[only red] ON 0
FROM MyCube