2

私は MDX の初心者で、次の SQL ステートメントを MDX に書きたいと思っています。

  SELECT COUNT(DISTINCT [DESC_Charm])as total
  FROM [Database].[dbo].[tbl_Charm] 
  WHERE ([DESC_Status] = 'solved'
  OR [DESC_Status] = 'terminated'
  OR [DESC_Status] = 'validated')

これを計算メンバーとして取得するために、MDX でこれを試しました。

SUM(
{   [D Status].[DESC Status].&[solved],
    [D Status].[DESC Status].&[terminated],
    [D Status].[DESC Status].&[validated]
}
,[Measures].[F_CountDistinct_CHARMS]
)

ただし、このステートメントは、カレンダーの週または月にわたって日付で集計すると、非常に重要になる場合があります...日などの最も深い集計レベルでのみ正しく機能します

私が必要としているのは、属性ディメンションによってフィルター処理され、集計でも使用できる DistinctCount ステートメントです。

誰かがこれを解決する方法を教えてもらえますか?

4

1 に答える 1

0

SUM()関数をに置き換えるだけAGGREGATE()で問題が解決したという意味だと思います。これは、すべてのメンバーが[D Status].[DESC Status]属性であるためです。

Aggregate(
{   [D Status].[DESC Status].&[solved],
    [D Status].[DESC Status].&[terminated],
    [D Status].[DESC Status].&[validated]
}
,[Measures].[F_CountDistinct_CHARMS]
)

メジャーはすでに個別のカウントであるため、必要に応じて SSAS で OLAP キューブ計算メンバーとしてフィルターを取得できます。

(
   [D Status].[DESC Status].&[solved],
   [D Status].[DESC Status].&[terminated],
   [D Status].[DESC Status].&[validated],
   [Measures].[F_CountDistinct_CHARMS]
)
于 2015-05-21T20:04:46.657 に答える