我试图针对TFS多维数据集编写一些报告。我想使用查询构建器,因为我对MDX很新,我不想编写整个查询;但是,将MDX注入查询设计器的维度过滤器表达式似乎并不容易。是否有特殊的语法输入?
例如,假设我想在特定日期范围内显示前10个最重的代码流失日期。在查询设计器中:
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名,我看到所有他们表达式正确解析;它似乎没有做任何事情。是否有一个我错过的简单问题?
谢谢!
答案 0 :(得分: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时,我发现this utility非常有用。