Reporting services 尝试在我的SSRS报告中显示工作日日历日期和工作日
我有一个报告,其中根据SQL查询中事件发生的日历日期计算工作日(因此没有周末)。即Reporting services 尝试在我的SSRS报告中显示工作日日历日期和工作日,reporting-services,Reporting Services,我有一个报告,其中根据SQL查询中事件发生的日历日期计算工作日(因此没有周末)。即 完成日期:2014年1月22日(我从你的问题中看到,你正试图使用SSRS表达式来实现你想要的结果。然而,当涉及到动态过滤时,我发现我自己转向SQL来完成大部分工作。考虑到这一点,我认为这将实现你想要的目标 下面的查询将创建一年中所有日期的列表(根据系统时间等于当前年份)。然后,它将为您提供整数形式的一周中的某一天和一年中的某一天。此外,它将过滤掉所有周六和周日,只剩下工作日。最后,它将计算我们现在所在的季度(我按
完成日期:2014年1月22日(我从你的问题中看到,你正试图使用SSRS表达式来实现你想要的结果。然而,当涉及到动态过滤时,我发现我自己转向SQL来完成大部分工作。考虑到这一点,我认为这将实现你想要的目标 下面的查询将创建一年中所有日期的列表(根据系统时间等于当前年份)。然后,它将为您提供整数形式的一周中的某一天和一年中的某一天。此外,它将过滤掉所有周六和周日,只剩下工作日。最后,它将计算我们现在所在的季度(我按日历年使用季度,但您可以轻松地将其调整为滚动季度或您的会计年度季度)作为筛选当前季度天数列表的一种方式。如果您有任何疑问,请告诉我
Declare @Start date = Case
When Month(getdate()) <= 3
Then '01/01/' + CAST(YEAR(getdate()) as varchar(4))
When Month(getdate()) <= 6
Then '04/01/' + CAST(YEAR(getdate()) as varchar(4))
When Month(getdate()) <= 9
Then '07/01/' + CAST(YEAR(getdate()) as varchar(4))
Else '10/01/' + CAST(YEAR(getdate()) as varchar(4))
End;
Declare @End date = Case
When Month(getdate()) <= 3
Then '03/31/' + CAST(YEAR(getdate()) as varchar(4))
When Month(getdate()) <= 6
Then '6/30/' + CAST(YEAR(getdate()) as varchar(4))
When Month(getdate()) <= 9
Then '09/30/' + CAST(YEAR(getdate()) as varchar(4))
Else '12/31/' + CAST(YEAR(getdate()) as varchar(4))
End;
Set NoCount on;
With All_Dates as (
Select CAST('01/01/' + CAST(YEAR(getdate()) as varchar(4)) as Date) as Dates
Union All
Select DATEADD(day,1,Dates) as Dates
From All_Dates
Where Dates < '12/31/' + CAST(YEAR(getdate()) as varchar(4))
)
Select DATEPART(DAYOFYEAR,Dates) as Day_of_Year
, DATEPART(WEEKDAY,Dates) as Day_of_Week
, Dates
From All_Dates
Where DATEPART(WEEKDAY,Dates) between 2 and 6
and Dates >= @Start
and Dates <= @End
Option (MaxRecursion 400);
Declare@Start date=Case
当月份(getdate())