2

メジャーが特定の基準を満たす2つのディメンションの組み合わせのみを返すようにMDXクエリを作成しようとしています。これは、FILTER関数を使用すると非常に簡単だと思いました。

SELECT
    NON EMPTY FILTER({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }, [Measures].[Point Percentage] < .95) ON ROWS,
    NON EMPTY ( HIERARCHIZE([Calendar Period].[Y-Q-M].[Month of Quarter].&[3]&[1]&[2009]) , [Measures].[Point Percentage] )ON COLUMNS
FROM [QEP Revenue]

ただし、クエリを実行した後、最初の結果のポイントパーセンテージが1.5172であり、明らかに.95を超えているため、間違いがあることがわかります。

フィルタを完全に削除した場合:

SELECT
    --NON EMPTY FILTER({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }, [Measures].[Point Percentage] < .95) ON ROWS,
    NON EMPTY ({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }) ON ROWS,
    NON EMPTY ( HIERARCHIZE([Calendar Period].[Y-Q-M].[Month of Quarter].&[3]&[1]&[2009]) , [Measures].[Point Percentage] )ON COLUMNS
FROM [QEP Revenue]

.95を超える値を含む同様の結果セットが得られます。フィルタのポイントが完全に欠落していますか、それとも2次元を一度にフィルタリングしようとして問題がありますか?

4

2 に答える 2

0

ひび割れました。

フィルタは、プログラムおよびパフォーマンス メトリック ディメンションに正しく適用されていました。問題は、フィルターがカレンダー期間ディメンションとは別に適用されたことです。したがって、表示された 1.5172 のポイント パーセンテージは、別の月にフィルター要件を満たすポイント パーセンテージがあったため、表示が許可されました。

目的の結果を得るために、クエリをそのまま書き直すことができました。

SELECT 
  NON EMPTY 
    Filter
    (
      {
          [Program].[ByRegion].[Program]*
          [Performance Metric].[Metric].Children*
          [Calendar Period].[Y-Q-M].[Month of Quarter].&[3]&[1]&[2009]
      }
     ,
      [Measures].[Point Percentage] < 0.95
    ) ON ROWS
 ,NON EMPTY 
    [Measures].[Point Percentage] ON COLUMNS
FROM [QEP Revenue];

幸いなことに、このクエリはレポート サービスで使用されているため、カレンダー期間を ROWS に移動するのが適切です。ただし、COLUMNS に暦期間を保持したい場合、両方の軸で同じディメンションを使用できないため、これを解決する方法がわかりません。

于 2009-05-18T18:39:25.277 に答える