1

として指定されたキューブ内のすべてのメジャーのデータ型を取得しましたCurrency。計算されたメンバーもあり、それらのいくつかにはiif(isempty([Measures].[Measure1]) or [Measures].[Measure1] = 0, null, 100 * [Measures].[Measure2] / [Measures].[Measure1])ロジックがあります。

MdxClient (内部的に使用) を使用してこのキューブにアクセスしていますが、この計算されたメンバーの一部がnotAdomdCommand.ExecuteXmlReaderとして返されることに気付きました。したがって、それらはnotとして計算されると仮定します。クエリの結果は、クライアント側で厳密に型指定されたデータ セットにマップされるため、返される型は私にとって重要です。xsd:doublexsd:decimalDoubleCurrency

xsd:decimal計算された各メンバーをVBA!CDecまたは だけでラップすることにより、 ssas を強制的に返すことができますCDecが、これはパフォーマンスを著しく低下させます。

計算されたメンバーを設定または強制するよりスマートな方法はありますCurrencyか? または、少なくとも?のように返さxsd:decimalれます。AdomdCommand.ExecuteXmlReader

4

2 に答える 2

0

計算メンバーのコードを次のようにします。

MEMBER [Measures].[CurrencyMeasure] 
AS
iif(isempty([Measures].[Measure1]) or 
[Measures].[Measure1] = 0, null, 
100 * [Measures].[Measure2] / [Measures].[Measure1]), FORMAT_STRING="Currency"
于 2015-02-19T11:17:28.757 に答える