web-dev-qa-db-ja.com

MDX-中央値の計算されたメジャーより大きい合計値

私はSSAS/MDXに比較的慣れていません。価格の範囲の中央値を計算する計算フィールドを持つキューブがあります。

MEDIAN( [DimItems].[Dim Items Id].CurrentMember.Children, [Measures].[Price] )

数量フィールドがメジャーとして含まれています。未加工の価格が、計算された中央値よりも大きい、等しい、および小さい場合の数量フィールドの合計を計算する必要があります。

次のデータを取ります:

Qty Price
183 $100
51  $114
420 $123
80  $137
12  $144
200 $147
51  $152

中央値は137ドルです。したがって、価格が中央値よりも少ない数量の合計を取得するには、$ 100、$ 114、および$ 123がすべて$ 137未満であるため、次の数量値(183,51,420)を合計する必要があります。この合計の値は654です。

問題は、これを行う方法がわからないことです。生の値(例:114ドル)と範囲の中央値(例:137ドル)を比較する方法がわかりません。任意の助けいただければ幸いです。

2
Chad Braun-Duin

最初に、兄弟間の価格の中央値を計算するメジャーを定義する必要があります。

[Measures].[Siblings_median_price] 
AS 
MEDIAN([DimItems].[Dim Items Id].CurrentMember.Siblings, [Measures].[Price])

次のメジャーは、必要なものを返すはずです。

[Measures].[Sum_below_median] 
AS 
SUM(
     [DimItems].[Dim Items Id].CurrentMember.Children
   , IIF([Measures].[Price] < [Measures].[Siblings_median_price]
   , [Measures].[Quantity], Null)
)
2
Benoit