我正在尝试针对 TFS 多维数据集编写一些报告。我想使用查询生成器,因为我对 MDX 还很陌生,我不想编写整个查询;但是,将 MDX 注入到查询设计器的维度过滤器表达式中似乎并不容易。是否有特殊的语法可以输入它们?
例如,假设我想在某个日期范围内显示前 10 个最重的代码流失日期。在查询设计器中:
- 我放入一个日期维度并将其标记为参数。
- 我放入版本控制变更集,将层次结构设置为变更集 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 个,而是看到了所有这些。表达式解析正确;它似乎什么也没做。我错过了一个简单的问题吗?
谢谢!