SSRS单个报告参数,用于设置数据集查询参数

时间:2014-03-17 16:25:21

标签: sql reporting-services parameters

我有点SSRS noob,并希望获得一些报告参数方面的帮助。

我有一个类似于以下内容的SQL查询:

SELECT [abc],[xyz],[etc]
FROM [database].[dbo].[db_view]
WHERE [Date] BETWEEN @StartDate AND @EndDate

通常这会导致创建两个报告参数,[开始日期]和[结束日期]。但是,对于之前期间多次运行报表的用户来说,默认的日期选择器方案会变得乏味,并且通常会选择不正确的开始和结束日期。

首选方法是为用户提供[Year]和[Month]等参数,并将这些参数默认为当前值,例如:Year:[2014] Month:[March],并使用这些选项设置SQL查询相应的参数,即后者的选择将用于设置@StartDate =' 2014/03/01'和@EndDate =' 2014/03/31'

我不确定如何设置参数如上所述;任何指导将不胜感激。

2 个答案:

答案 0 :(得分:1)

在SSRS中,添加2个隐藏参数,开始和结束日期。将这些的默认值设置为表达式。使用可见年/月参数中的值构建日期字符串,并使用CDATE()将它们转换为日期类型。在SQL查询中使用这两个隐藏参数。

对于年/月参数,只需添加这些参数,导航到他们的"可用值"属性选项卡,以及您收集的月份中的硬编码和年,或连接数据集以提供参数的可用值。

答案 1 :(得分:0)

没有参数表达式(需要SQL Server 2012数据源)

  1. 在SSRS中,确保创建单独的参数:@Year@Month@StartDate@EndDate
  2. 使用DATEFROMPARTS在数据集中构建开始日期和结束日期

    SELECT [abc],[xyz],[etc]
    FROM [database].[dbo].[db_view]
    WHERE [Date] BETWEEN DATEFROMPARTS(@Year, @Month, @StartDate)
                 AND DATEFROMPARTS(@Year, @Month, @EndDate)