MDX - トップカウントプラス「その他」や「休息」
-
16-09-2019 - |
質問
私は、次のようなTOP 10ジップコード(私の患者ステイ措置に応じて)を計算する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%積み上げ棒グラフを移入するために使用されます。これは、トップ10のそれぞれに1つ、第11:!クライアントは、11個の値がなければならないように、これは00パーセントベースのチャートであるため、私たちは「その他」欄に郵便番号の残りの部分をひとまとめことを求めています残りの郵便番号の合計がある。
私は、MDXに極度の初心者ですが、それは不可能でなければなりませんように、これはsouundしません。誰もが任意のアイデアや提案を持っていますか?
解決
私がテストされていないコードで自分のベストを尽くしますので、ここに行く:
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コードのセットを作成し、集約されたすべてのZIPコードを、あなたのトップ10を除きます。
これは共通セット(トップ10 ZIPコード)である場合は、また、あなたはあなたが持っているすべてのMDXクエリを変更することなく、広告nauseumそれを再利用することができ、キューブ、上のセットを作りたいことがあります。
乾杯、
エリック
所属していません StackOverflow