我有一个带有两个度量值组的多维数据集,一个是 MOLAP 格式,另一个是 ROLAP 格式。我还从每个成员组( MOLAP和ROLAP[C] )中的单个列创建了一个计算成员 ( )。我想要的只是返回我的值,如果它不为空,否则返回。这很容易通过以下语句实现:[A] [B] [C][A][B]CASE
WITH MEMBER [C] AS
CASE
WHEN ISEMPTY([A]) THEN [B]
ELSE [A]
END
这很好用,运行以下查询显示的结果与我期望的完全一样,其中[C]只有[B]当[A]为空时。
SELECT
{ [A]
, [B]
, [C]
} ON COLUMNS
, [Time].CHILDREN ON ROWS
FROM
[Cube]
但是,在某些情况下[A]和[B]都是空的,我想将它们从结果集中过滤掉。通常,我可以只包装[Time]尺寸NONEMPTY来实现这一点:
SELECT
{ [A]
, [B]
, [C]
} ON COLUMNS
, NONEMPTY([Time].CHILDREN) ON ROWS
FROM
[Cube]
但是当我用上面的查询尝试这个时,结果会过滤掉所有为空的行[A],无论是否[B]为空。为空的行[B]不会被过滤掉。
我希望 NONEMPTY 会:
- 只过滤掉空的行
[C]([A]并且[B]是空的)或 - 过滤掉所有
[A]OR[B]为空的行
为什么NONEMPTY只考虑[A]到这里?