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]