2

TFS キューブに対していくつかのレポートを書き込もうとしています。私は MDX にかなり慣れていないため、クエリ ビルダーを利用したいと考えており、クエリ全体を記述したくありません。ただし、MDX をクエリ デザイナーのディメンション フィルター式に挿入するのは簡単ではないようです。それらを入力するための特別な構文はありますか?

たとえば、特定の日付範囲で最も重いコード チャーンの日付の上位 10 件を表示したいとします。クエリ デザイナーで:

  • Date ディメンションをドロップして、パラメータとしてマークします。
  • Version Control Changeset にドロップし、階層を Changeset Id に設定し、演算子を MDX に設定します。
  • 次に、フィルター式ビルダーを使用して構築しますTOPCOUNT([Version Control Changeset].[Changeset ID], 10, [Measures].[Total Churn])
  • クエリ デザイナーに戻り、Date、Changeset ID、Total Churn を列に設定しました。

生成されたクエリは次のとおりです。

SELECT NON EMPTY { [Measures].[Total Churn] } ON COLUMNS, NON EMPTY { ([Date].[Date].[Date].ALLMEMBERS * [Version Control Changeset].[Changeset ID].[Changeset ID].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( TOPCOUNT([Version Control Changeset].[Changeset ID], 10, [Measures].[Total Churn]) ) ON COLUMNS FROM ( SELECT ( STRTOSET(@DateYearMonthDateHierarchy, CONSTRAINED) ) ON COLUMNS FROM [Code Churn])) WHERE ( IIF( STRTOSET(@DateYearMonthDateHierarchy, CONSTRAINED).Count = 1, STRTOSET(@DateYearMonthDateHierarchy, CONSTRAINED), [Date].[Year - Month - Date Hierarchy].currentmember ) ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

ただし、クエリ デザイナーのプレビュー領域とレポートを実行するときの両方で、TOPCOUNT が適用されていないかのように、上位 10 を表示する代わりに、それらすべてを表示します。式は正しく解析されます。何もしないようです。私が見逃した簡単な落とし穴はありますか?

ありがとう!

4

1 に答える 1

2

あなたの目標に基づいて...特定の日付範囲で上位10の最も重いコードチャーン日を表示する

あなたのMDX式は間違っていると思います...

TOPCOUNT([Version Control Changeset].[Changeset ID], 10, [Measures].[Total Churn])

代わりにこれを試してください...

TOPCOUNT(
     (  
        [Date].[Date].[Date].ALLMEMBERS *
        [Version Control Changeset].[Changeset ID]
     )
    ,10
    ,[Measures].[Total Churn]
)

...また、 MS 統合クエリ デザイナから生成された MDX を操作する場合、このユーティリティが非常に役立つことがわかりました。

于 2012-03-16T17:34:41.007 に答える