小编Mik*_*ton的帖子

SSRS表达 - 从周值查找周的第一天

我有一份SSRS报告,它会按照按周细分的VDI池返回唯一的登录计数.例如,对于1月,它将显示:

     Week                # of Logins  
2015_JANUARY_WEEK_NO_1       3  
2015_JANUARY_WEEK_NO_2       49
Run Code Online (Sandbox Code Playgroud)

我正在使用"周"列链接到另一个报告,该报告将显示所选周的登录信息,因此我必须获取所选周的第一天和选择周的最后一天,并将其作为参数传递给其他报告.

我知道如何从周专栏中获取年份和周数#.

=Mid(Fields!Week.Value,1,4) 
Run Code Online (Sandbox Code Playgroud)

给了我一年和 =Trim(Mid(Fields!Week.Value,Len(Fields!Week.Value),Len(Fields!Week.Value)))

给了我一周.

我发现这个T-SQL有效:

DECLARE @WeekNum INT
          , @YearNum char(4);

SELECT @WeekNum = 2 
     , @YearNum = 2015  
-- once you have the @WeekNum and @YearNum set, the following calculates the date range. 

SELECT DATEADD(wk, DATEDIFF(wk, 6, '1/1/' + @YearNum) + (@WeekNum-1), 6) AS StartOfWeek;   
SELECT DATEADD(wk, DATEDIFF(wk, 5, '1/1/' + @YearNum) + (@WeekNum-1), 5) AS EndOfWeek; 
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何把它变成一个不会抛出错误的表达式.

这是我到目前为止所得到的:

=DateAdd("w", DateDiff("w", 6, '1/1/' + (Mid(Fields!Week.Value,1,4))) + (Trim(Mid(Fields!Week.Value,Len(Fields!Week.Value),Len(Fields!Week.Value)))
- …
Run Code Online (Sandbox Code Playgroud)

reporting-services

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

reporting-services ×1