0

SQL Server Analysis Services を使用しています。

今のところ、これを行うだけの計算メンバーがあります。

[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME")

以前、私は書いたばかりです[MyDimension].[MyOnlyHierarchy].CurrentMember.UniqueName。とにかく同じでなければなりません。

ここで、SQL プロファイラーを使用して、アプリケーションが発行するクエリを把握しました。[MyDimension].[MyOnlyHierarchy]たとえば、 ID 401 と 402 を使用して異なるメンバーを合計する単純な計算メンバーの場合、次の結果が得られます。

[MyDimension].[MyOnlyHierarchy].&[401][MyDimension].[MyOnlyHierarchy].&[402]

言い換えれば、計算されたメンバーの一意の名前を私に与えるのではなく、AS が基礎となるメンバーを評価し、結果を連結するかのようです...

私にとって本当に奇妙なことは、元のクエリを取得して、次を前に追加することです。

WITH MEMBER [Measures].[GiveMeCalculatedMemberUniqueName]
AS
(
[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME")
)

...残りのクエリ

この 2 番目のメジャーを使用して、正しい結果が得られました。文脈は同じです(少なくとも私にとっては)。すべてが同じです... しかし、プロジェクト ファイルで宣言されたメジャーは、このインライン計算メンバーとは異なる結果をもたらします。

何が起きてる?注意してください、私は 10000 回再デプロイし、サーバー上のキューブ内の実際の定義とすべてをチェックしました。それは私には意味がありません。

4

2 に答える 2

1

計算は、解決順序に基づいて評価されます。それを下に移動したことが原因である可能性があり、それが解決順序が機能するはずだったため、正しい結果が得られます。ここに解決順序に関する小さなブログがありますが、インターネットにはもっとたくさんの記事があります。

HTH

于 2012-10-25T12:15:36.447 に答える
0

面白い...私はこれで約2〜3時間座って、あらゆる考えを探っています。次に、この質問を投稿した後、もう 1 つ試してみることにしました。

計算されたメンバーの定義を、プロジェクト内の計算されたメンバー スクリプト ファイルの一番下に移動します。

これで正しい結果が得られます。

于 2012-10-25T12:09:06.610 に答える