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
有没有一种方法可以根据另一个参数列表(年)创建一个周 (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