MOLAP 形式と ROLAP 形式の 2 つのメジャー グループを持つキューブがあります。[C]
また、各メンバー グループ ( [A]
MOLAPおよび[B]
ROLAP ) の 1 つの列から計算メンバー ( ) を作成しました。私が望むのは、空でない場合は[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]
ある)行のみを除外するOR[A]
OR[B]
が空のすべての行を除外します
ここで考慮に入れているのNONEMPTY
はなぜですか?[A]