Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 尝试在我的SSRS报告中显示工作日日历日期和工作日_Reporting Services - Fatal编程技术网

Reporting services 尝试在我的SSRS报告中显示工作日日历日期和工作日

Reporting services 尝试在我的SSRS报告中显示工作日日历日期和工作日,reporting-services,Reporting Services,我有一个报告,其中根据SQL查询中事件发生的日历日期计算工作日(因此没有周末)。即 完成日期:2014年1月22日(我从你的问题中看到,你正试图使用SSRS表达式来实现你想要的结果。然而,当涉及到动态过滤时,我发现我自己转向SQL来完成大部分工作。考虑到这一点,我认为这将实现你想要的目标 下面的查询将创建一年中所有日期的列表(根据系统时间等于当前年份)。然后,它将为您提供整数形式的一周中的某一天和一年中的某一天。此外,它将过滤掉所有周六和周日,只剩下工作日。最后,它将计算我们现在所在的季度(我按

我有一个报告,其中根据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())