2009-04-24 4 views
1

私のようなTOP 10ジップコード(私の患者ステイ措置に応じて)を計算するMDXクエリを作成しました:MDX - トップカウントプラス「その他」や「休息」

WITH 
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE(EXISTING { [Current Month] })', SOLVE_ORDER = 0 

SELECT 
NON EMPTY { [Measures].[Patient Stays] } 
ON COLUMNS, 

TOPCOUNT({ ORDER(HIERARCHIZE({ [Patient].[ByZipcode].[All].CHILDREN }), ([Measures].[Patient Stays]), BDESC) }, 10) 
ON ROWS 

FROM [Patient Stay] 

WHERE ([Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER) 

このクエリをするために使用されますPerformancePoint 100%積み重ね棒グラフに値を設定します。クライアントは、これが00%ベースのチャートなので、残りの郵便番号を「その他」のフィールドにまとめ、11の値が必要であることを尋ねました。トップ10のそれぞれに1つ、残りの郵便番号の合計です。

私はMDXの極端な初心者ですが、これは不可能ではないようなものではありません。誰にもアイデアや提案はありますか?

答えて

2

私はここに、テストされていないコードで自分のベストを尽くします:

WITH 
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE(EXISTING { [Current Month] })', SOLVE_ORDER = 0 

SET [Top10ZipCodes] AS 
    (TOPCOUNT({ ORDER(HIERARCHIZE({ [Patient].[ByZipcode].[All].CHILDREN }), ([Measures].[Patient Stays]), BDESC) }, 10)) 

MEMBER [Patient].[ByZipCode].[OtherZipCodes] AS 
    (AGGREGATE({EXCEPT([Patient].[ByZipCode].Members, [Patient].[ByZipCode].[Top10ZipCodes])})) 

SELECT 
NON EMPTY { [Measures].[Patient Stays] } 
ON COLUMNS, 

{[Top10ZipCodes], [Patient].[ByZipCode].[OtherZipCodes]} 
ON ROWS 

FROM [Patient Stay] 

WHERE ([Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER) 

これがないことですが、あなたのトップ10 ZIPコードのセットを作成し、集計(合計よりも異なる!!!)あなたのトップ10を除いてすべての郵便番号。

また、これが一般的なセット(トップ10の郵便番号)の場合は、キューブ上にセットを作成して、それを広告の恒常性あなたが持っているすべてのMDXクエリを変更する必要はありません。

乾杯、
エリック

+0

SET [患者]を作成すると、構文エラーが発生しました。[ByZipCode]。[Top10ZipCodes]。私はちょうど([Top10ZipCodes]にSETの名前を変更する)次元の参照を削除する必要があり、これは私のために100%働いた。どうもありがとう、私は何かを学んだような気がしていますが、これは単なる質問の答えよりも優れています。 – Colin

+0

ああ、そうです。私はMEMBERタイプの気分だったと思います。 とにかく、うれしいです! – Eric

関連する問題