2011-08-16 12 views
1

私は、WHERE文でメジャー値を使用してMDX式を書きたいです。MDX - メジャー値のフィルター?

たとえば、異なる都市の店舗で販売されている商品の収入を表示するとしますが、価格が10ドルを超える商品の収入のみをカウントしたいとします。

これは私が試したものですが、それは動作しません:

WHERE ([MEASURES].[Price]>10) 

は、どのように私はMDXを使用して、これを行うことができますか?

答えて

1

あなたは、OLAPデータベースへのアクセス権を持っている場合はあなただけ(例えばDSVであなたのファクトテーブルのための式を作成し、このフィールドにメトリックを作成)して、更なる計算のためにそれを使用する別のメトリック価格を作成することができます。 しかし、あなたは、DBへのアクセス権を持っていない場合は、スクリプト次試すことができます。

WITH 
MEMBER [Measures].[Price10] AS 
    'IIF([Measures].[Price] < 10,0,[Measures].[Price])' 
MEMBER [Measures].[COST] AS 
    '[Measures].[Price10]*[Measures].[Unit Count]' 
SELECT 
    {[Measures].[COST]} ON COLUMNS, 
    {[Customer].[Customer Geography].[City].Members,[Customer].[Customer Geography].[All Customers]} ON ROWS 
from [Adventure Works] 

それはただの提案だ...、それはメトリック価格を計算するために使用する集約タイプに依存します。

+0

答えてくれてありがとう!私は、OLAPデータベースへのアクセス権を持っていますが、事は、私は限界がどうなるか手を前に知っていないので、価格の上限は、ユーザーによってinputedなければならないということです。 2番目のスクリプトは、MDXクエリは私が処理するには大きすぎることになるので、私は、同様に入力するユーザーのために、他の多くのオプションを持っていると思うあまりにも複雑です。しかし、助けてくれてありがとう! – gusper

関連する問題