2

次のスクリプトは、3 つのフィールドを返すことを目的としています。

1.地域
2.収益
3. %Parent ...地理ディメンションの構造。これは、大陸の収益に対する地域の収益の割合になります。

WITH    
MEMBER Measures.[%Parent] AS 
    [Measures].currentmember/
    (
    [Geolocation].[Geography].currentmember.parent.name, 
    [Measures].currentmember
    ), format_string ="Percent"
SELECT
    ORDER(
        DESCENDANTS(
            [Geolocation].[Geography].[All],
            [Geolocation].[Geography].[Geography Region]
            ),
        [Geolocation].[Geography].CurrentMember.name, 
        BASC 
        ) ON ROWS,
    {[Measures].[Revenue], Measures.[%Parent]}  ON COLUMNS
FROM [MyCube]

現在、以下を返します。スクリプトを変更して、必要なパーセンテージを取得するにはどうすればよいですか?

ここに画像の説明を入力

4

1 に答える 1

2

[Measures].CurrentMemberおそらく間違っていると思います-計算されたメンバーを参照しています。メジャーを明示的に参照してみてください。

WITH MEMBER [Measures].[%Parent] AS
    [Measures].[Internet Order Quantity] / 
    ([Customer].[Customer Geography].CurrentMember.Parent, [Measures].[Internet Order Quantity])
    , format_string ="Percent" 
SELECT
    {[Measures].[Internet Order Quantity], [Measures].[%Parent]} ON 0,
    DrillDownLevel([Customer].[Customer Geography].[All Customers]) ON 1
FROM [Adventure Works]

結果:

               Internet Order Quantity            %Parent
All Customers                   60,398             1.#INF
Australia                       13,345             22.10%
Canada                           7,620             12.62%
France                           5,558              9.20%
Germany                          5,625              9.31%
United Kingdom                   6,906             11.43%
United States                   21,344             35.34%

(もちろん、私の簡単な例では All メンバーを保護していませんが、お分かりいただけると思います。)

于 2013-06-21T18:03:19.783 に答える