我有一個帶有兩個度量值組的多維數據集,一個用於MOLAP格式,另一個用於ROLAP格式。我還在每個成員組的單個列中創建了計算成員([C]
)([A]
MOLAP和[B]
ROLAP)。我只想要[C]
返回0123B的值(如果它不是空的),否則返回[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]
是空的)OR - 過濾掉所有行
[A]
或[B]
是空
爲什麼NONEMPTY
只需要[A]
in acc ount這裏?
你說得對,'NON EMPTY'是我想要的。但在這種情況下,在同一軸上不是'[A]'和'[B]'?爲什麼'NONEMPTY'只會過濾出[A]爲空的行,而不是'[B]'所在的行? – mclark1129
啊,我現在看到了。 NONEMPTY是FILTER功能的特殊形式。它從第一組中刪除第二組中空的項目。如果你沒有提供第二套,它只是使用你的立方體的默認度量 - 在這種情況下,[A]。如果您想針對[C]測試NONEMPTY,則必須將[C]放入函數的第二個參數中。 – Bill