3

私はまだ MDX の初心者なので、これは簡単な質問かもしれません。

製品ごとの売上高を見るようなことをしたい: より具体的には、製品は「クラス」(クラスは A、B、または C) に分類されるため、クラス A の製品、クラス B の売上高を確認したい等々。ディメンション "Product" にレベル "Class" の 1 つの階層 "Classification" がある場合、単純化のために MDX クエリを次のようにします。

SELECT 
[Measures].[Sales] on COLUMNS,
[Product].[Classification].[Class].members on ROWS
FROM [Cube]

問題は、class='C' のレコードがない場合、たとえば Data テーブル Product にメンバー 'C' が存在しないことですよね? その場合は、ゼロカウントを表示したいと思います。したがって、次の代わりに:

    | Sales
  A    1000
  B    200

私は…したい:

    | Sales
  A    1000
  B    200
  C    0

何か助けはありますか?前もって感謝します!

4

1 に答える 1

2

問題は、class='C' のレコードがない場合、たとえば Data テーブル Product にメンバー 'C' が存在しないことですよね?

select に NON EMPTY ... ON ROWS が含まれていないため、'C' が返され、'Sales' 値として空のセルが返されます。「クライアント」ツールがそれを無視している可能性があります。

できることは、CoalesceEmpty () 関数を使用して計算されたメジャーを定義し、 empty の代わりに ZERO 値を返すことです。

WITH    
   MEMBER [Measures].[Sales - X] as 
            CoalesceEmpty( ( [Measures].[Sales] ).Value, 0 )

SELECT    
    [Measures].[Sales - X] on COLUMNS,  
    [Product].[Classification].[Class].members on ROWS 
FROM [Cube]
于 2013-10-04T00:26:40.053 に答える