Построитель отчетов. Как работают выражения фильтра MDX в Query Designer? - PullRequest
2 голосов
/ 16 марта 2012

Я пытаюсь написать несколько отчетов для куба TFS.Я хотел бы использовать построитель запросов, так как я довольно новичок в MDX и предпочел бы не писать весь запрос;однако не так просто внедрить MDX в выражения фильтра измерений конструктора запросов.Существует ли специальный синтаксис для их ввода?

Например, скажем, я хочу показать 10 самых тяжелых дат оттока кода в определенном диапазоне дат.В конструкторе запросов:

  • Я вставляю измерение Date и отмечаю его как параметр.
  • Я помещаю в Change Control Changeset, устанавливаю иерархию в Changeset Id, оператор в MDX.
  • Затем я использую построитель выражений фильтров для построения TOPCOUNT([Version Control Changeset].[Changeset ID], 10, [Measures].[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, а вижу их все.Выражение анализируется правильно;кажется, он ничего не делает.Есть легкая ошибка, которую я пропустил?

Спасибо!

1 Ответ

2 голосов
/ 16 марта 2012

Исходя из вашей цели ... , чтобы показать 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]
)

... также я нашел эту утилиту очень полезной при работе с MDX, сгенерированным из конструкторов интегрированных запросов MS.

...