我有一个带有两个度量值组的多维数据集,一个是 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]
到这里?