报表生成器:MDX过滤器表达式如何在查询设计器中工作?

时间:2012-03-15 21:28:31

标签: tfs ssas mdx reportbuilder

我试图针对TFS多维数据集编写一些报告。我想使用查询构建器,因为我对MDX很新,我不想编写整个查询;但是,将MDX注入查询设计器的维度过滤器表达式似乎并不容易。是否有特殊的语法输入?

例如,假设我想在特定日期范围内显示前10个最重的代码流失日期。在查询设计器中:

  • 我放入日期维度并将其标记为参数。
  • 我放入版本控制变更集,将层次结构设置为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名,我看到所有他们表达式正确解析;它似乎没有做任何事情。是否有一个我错过的简单问题?

谢谢!

1 个答案:

答案 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非常有用。