下拉SQL Server中参数的月份和年份列表

时间:2017-09-25 15:52:50

标签: sql-server reporting-services

我想显示我的参数的月份和年份,供最终用户从下拉列表中选择。

例如,startdate必须是2017年6月,enddate只有getdate()的月份和年份

这是我写的查询,但它不适合我

declare @start datetime = '6/1/2017'
declare @end datetime = getdate()

select 
    @start = dateadd(M, @start), 
    datename(M, @start) + ' ' + datename(Y, @start)
where 
    @start < @end

2 个答案:

答案 0 :(得分:1)

您的代码中存在一些错误:

  1. dateadd的语法,更正$scope.userPic.naturalHeight(); $scope.userPic.naturalWidth();
  2. 您将返回错误dateadd(MONTH,1, @start)
  3. 试试这些代码

    A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.

答案 1 :(得分:0)

我认为一个解决方案如下。

  1. 创建一个存储过程,如下所示

    declare @start DATE = '2011-05-01'
    declare @end DATE = getdate()
    ;with months (date)
    AS
    (
       SELECT @start
       UNION ALL
       SELECT DATEADD(month,1,date)
       from months
       where DATEADD(month,1,date)<=@end
    )
    select Datename(month,date) As Months, Datename(year, date) As Years, CONCAT(Datename(month,date), ' ', Datename(year, date)) As MonthandYear from months
    
  2. 为报表RDL创建参数,对于可用值选项,从Query中选择get值。

  3. enter image description here 从上面的查询中选择创建的数据集,在值字段中选择MonthandYear字段并标记为&#39;开始日期&#39;。

    运行报告时,您应该接收输入参数作为开始日期,其中包含日期差异的下拉值以及开始日期和结束日期。

    希望这会有所帮助。