SSRS 显示周列表

SSRS show list of weeks

有没有一种方法可以根据另一个参数列表(年)创建一个周 (param):w1,W2,... 列表,所以第一个列表是年份,第二个是与所选年份对应的周.

例如,如果我从我的第一个列表中选择 2017 年,我的第二个列表(周)应该更新为标签 W1、W2...,并且值是给定年份中的相应日期。

您可以调整它以在 SQL 中创建一个 table,然后在您的报告中引用它。 注意:如果您需要超过一年的日期,您可以在外循环中包含 Year

declare @year as int    
declare @startdate as datetime
declare @wk as int
declare @tbl as table (
  tbl_wk int, 
  tbl_Monday datetime
)

set @wk = 1
set @year = '2017'
set @startdate = CAST (cast(@year as varchar(4))+ '/01/01 00:00:00' as datetime)
while (@wk < 53)
  begin
   insert into @tbl (tbl_wk,tbl_Monday)
   select @wk,DATEADD(wk, DATEDIFF(wk,0,@startdate), 0) as monday--MondayOfCurrentWeek,
   set @wk = @wk+1
   set @startdate = @startdate+7
end

select * from @tbl

试试这个...

declare @year as int    
declare @startdate as datetime
declare @wk as int
declare @endwk as datetime
declare @tbl as table (
  tbl_wk int, 
  tbl_Monday datetime
)
set @endwk= (SELECT DATEPART(wk, GETDATE())+1)
set @wk = 1
set @year = '2017'
set @startdate = CAST (cast(@year as varchar(4))+ '/01/01 00:00:00' as datetime)
while (@wk < @endwk)
  begin
   insert into @tbl (tbl_wk,tbl_Monday)
   select @wk,DATEADD(wk, DATEDIFF(wk,0,@startdate), 0) as monday--MondayOfCurrentWeek,
   set @wk = @wk+1
   set @startdate = @startdate+7
end

select * from @tbl