2011-10-07 102 views
0

我是一个使用MDX的noob,但我已经获得SSRS以使用常规SQL查询和存储过程的参数。我想用开始日期和结束日期来过滤多维数据集,因为那里有大量数据,并且使用过滤器的报告花费的时间太长。在SSRS中,我使用日期时间选择器控件来选择日期。通过使用DateTime Picker将MDS查询传递日期时间参数来过滤SSRS Report Builder中的数据

这里是我的MDX查询从SSRS后,我设置参数,使用查询设计器:

SELECT NON EMPTY { [Measures].[Detail Presentation Count], [Measures].[Duration], [Measures].[DurationSeconds] } ON COLUMNS, NON EMPTY { ([Cube View Detail Presentation Country Dimension].[Country Alpha2].[Country Alpha2].ALLMEMBERS * [Cube View Detail Presentation Country Dimension].[English Short Name].[English Short Name].ALLMEMBERS * [Presentation].[Name].[Name].ALLMEMBERS * [Presentation].[Revision].[Revision].ALLMEMBERS * [Presentation].[ID].[ID].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM (SELECT (STRTOMEMBER(@FromCubeViewDetailPresentationTimeDimensionCreated, CONSTRAINED) : STRTOMEMBER(@ToCubeViewDetailPresentationTimeDimensionCreated, CONSTRAINED)) ON COLUMNS FROM [DetailPresentation]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

我试图通过从SSRS参数的日期值的各种格式,但没有工作,并且查询不会运行。日期的格式如下:2011-01-04 06:10:3​​8.000000。

我需要传递的日期格式是什么,或者我需要构建比MDX查询的日期字符串还多的工作吗?

回答

0

我想我明白了这一点,基本上用MDX你不发送一个值作为参数,你发送维度成员。

比方说,我们我们要按月进行过滤,通常我会为SSRS参数做这样的事情:

Month(Parameters!StartDate.Value) 

但是,这是不行的。相反MDX期待这样的事情:

[Cube View Detail Presentation Time Dimension].[Month Number].&[3] 

所以,从SSRS参数的角度来看这将是:

=“[Cube View Detail Presentation Time Dimension].[Month Number].&[“ + MONTH(Parameters!StartDate.Value) + “]” 

这个工程提供的维度成员存在。例如,如果您在15个月内发送一个月,请期望它失败,因为系统中只有12个月。