1

回避方法がわからないという MDX クエリの問題に直面しました。次のクエリがあります。

SELECT
 {
     [Measures].[Cost],
     [Measures].[Non additive]
 } ON COLUMNS,

 NON EMPTY 
 {
     [Organization].[Organization Name].[Organization Name].MEMBERS
     *[Time].[Month].[Month].MEMBERS
     *[Region].[City].[City].MEMBERS
 } ON ROWS
FROM [Cube]

そして、最下位のグループ化レベルではなく、組織レベルで「[メジャー].[非加算]」を表示したいと思います。出来ますか?

助けてくれてありがとう。

4

1 に答える 1

1

どうしても表示したくないメジャーがある場合は、そのコピーを作成し、現在のセルのレベルのテストを含めます。

WITH MEMBER [Measures].[My New Measure Name] 
AS 'IIF(IsLeaf([Organization].currentMember), NULL, [Measures].[Non additive])'
SELECT
 {
     [Measures].[Cost],
     [Measures].[My New Measure Name]
 } ON COLUMNS,
 NON EMPTY 
 {
     [Organization].[Organization Name].[Organization Name].MEMBERS
     *[Time].[Month].[Month].MEMBERS
     *[Region].[City].[City].MEMBERS
 } ON ROWS
FROM [Cube]

新しいメジャーは、組織メンバーがリーフ レベル (階層の最下位) にあるかどうかをテストします。その場合、空白が返されます。そうでない場合は、古いメジャーの値を返します。

さらに制御したい場合は[Organisation].level = [Organisation].levels(1)、必要なレベルを検出するために数値をテストして変化させます (レベルが低いほど数値が高くなります)。

于 2013-01-10T09:15:59.900 に答える