MDX案例声明不间断

时间:2014-06-25 13:42:11

标签: case mdx

有没有办法在没有中断功能的情况下使用MDX Case语句? 在下面的示例中,我想要[Measures]。[Count] = 7以显示“MEDIUM”和“LARGE”(或者只有“LARGE”,如果可能的话),而不仅仅是“MEDIUM”。

  CASE 
  WHEN [Measures].[Count] > 4 THEN 'MEDIUM'   
  WHEN [Measures].[Count] > 6 THEN 'LARGE'
  WHEN [Measures].[Count] > 3 THEN 'SMALL'
  ELSE "NONE"
  END

1 个答案:

答案 0 :(得分:0)

首先,您应该重新排序WHEN子句,如在MDX中(如在SQL中),匹配wins的第一个子句:

CASE 
  WHEN [Measures].[Count] > 6 THEN 'LARGE'
  WHEN [Measures].[Count] > 4 THEN 'MEDIUM'   
  WHEN [Measures].[Count] > 3 THEN 'SMALL'
  ELSE "NONE"
END

会回归“大人物”。为了7。

您无法从CASE表达式返回多个值。 CASE是一个表达式(即使MS文档在某些地方错误地将其称为语句)。表达式只能有一个结果。

想象一下你写了一个Excel公式(它也是一个表达式)。您只有一个单元格来显示结果,因此公式只能提供一个结果。

但是,当然,结果可能是多个结果的组合,如字符串连接。或者在CASE表达式的情况下,您可以返回可以包含一个或多个成员的集合。但即使这样,你也需要不同的WHEN分支,每个分支只返回一组。