3

[Scenario].[Option]ディメンションの値が関数+5を使用して達成しようとしたものであるかどうかに応じて、列に異なる出力を生成しようとしていIIfます。

WITH MEMBER [XorY] AS
(
    IIf([Scenario].[Option] = +5, 'X', 'Y')
    --IIf([Scenario].[Option].&[+5], 'X', 'Y')
)
SELECT
NON EMPTY
(
    [Scenario].[Option].[Option]
) ON ROWS,
NON EMPTY
(
    [XorY]
) ON COLUMNS
FROM [RePro]
WHERE
(
    [ABC].[ABC].[Val]
) CELL PROPERTIES VALUE

ただし、IIf上記のステートメントのいずれかを使用すると、 の値に関係なく[XorY]常に. 私が行っている比較は、構文的に間違っているか何かのようです。どうすればいいですか?条件のディメンションで計算されたメンバーを使用すると、はるかにうまく機能することに気付きましたが、私の場合は不可能です-使用する必要があります。Y[Scenario].[Option][Measures]IIf[Scenario].[Option]

助けてくれてありがとう:)

4

1 に答える 1

5

member ステートメントを使用する場合、現在のセルを参照するため、通常は currentmember を使用します。これを membervalue と組み合わせると、値が得られます。この場合、予想される回答を引用符で囲みました。

WITH MEMBER [XorY] AS
(
   IIf([Scenario].[Option].currentMember.membervalue = "+5", 'X', 'Y')
)

数値と比較する場合は、次のようにします。

WITH MEMBER [XorY] AS
(
   IIf(STRTOVALUE([Scenario].[Option].currentMember.membervalue) = 5, 'X', 'Y')
)

[Scenario].[Option] のすべてのメンバーが数字ではない場合、これはエラーを返す可能性があります。変換には潜在的なパフォーマンスの問題もあります。

于 2013-10-02T17:03:35.477 に答える