Reporting services SSRS-如何使用SSRS表达式提取上周五
我需要帮助来完成之前的工作日,不包括SSRS中的周末。我使用下面的代码,但是这段代码看起来不会超过周末 以下是我通常使用的代码:Reporting services SSRS-如何使用SSRS表达式提取上周五,reporting-services,ssrs-2008-r2,ssrs-2012,Reporting Services,Ssrs 2008 R2,Ssrs 2012,我需要帮助来完成之前的工作日,不包括SSRS中的周末。我使用下面的代码,但是这段代码看起来不会超过周末 以下是我通常使用的代码: =DateAdd(DateInterval.Day , Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3 ,DatePart(DateInterval.WeekDay, Today()) = 1, -2 ,True, -1) , Today()) 有没有人想过如何编写SSRS表达式,以查看周末和仅提取工作日
=DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2
,True, -1)
, Today())
有没有人想过如何编写SSRS表达式,以查看周末和仅提取工作日?您可以设置不同的每周第一天(取决于地区或服务器配置方式)。在
DatePart
函数中显式设置FirstDayOfWeek
,无论此设置如何,都应给出一致的结果:
=DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today(), FirstDayOfWeek.Sunday) = 2, -3
,DatePart(DateInterval.WeekDay, Today(), FirstDayOfWeek.Sunday) = 1, -2
,True, -1)
, Today())
您可以设置不同的每周第一天(取决于地区或服务器配置方式)。在
DatePart
函数中显式设置FirstDayOfWeek
,无论此设置如何,都应给出一致的结果:
=DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today(), FirstDayOfWeek.Sunday) = 2, -3
,DatePart(DateInterval.WeekDay, Today(), FirstDayOfWeek.Sunday) = 1, -2
,True, -1)
, Today())
如果要在星期一运行报告时将日期参数默认为星期五(否则默认为前一天),请尝试以下操作:
=DateAdd(DateInterval.Day,IIf(DatePart(DateInterval.Weekday,Today)=2,-3,-1),Today)
这可能就是你真正需要的
以下表达式可用于将日期参数默认为前一个星期五,而不管报表在星期几运行。这对每周报告有一定的价值
=DateAdd(DateInterval.Day,-(DatePart(DateInterval.Weekday,DateAdd(DateInterval.Day,1,Today),0,0)),Today)
如果要在星期一运行报告时将日期参数默认为星期五(否则默认为前一天),请尝试以下操作:
=DateAdd(DateInterval.Day,IIf(DatePart(DateInterval.Weekday,Today)=2,-3,-1),Today)
这可能就是你真正需要的
以下表达式可用于将日期参数默认为前一个星期五,而不管报表在星期几运行。这对每周报告有一定的价值
=DateAdd(DateInterval.Day,-(DatePart(DateInterval.Weekday,DateAdd(DateInterval.Day,1,Today),0,0)),今天)
继续探索这一点,并在这里与其他人一起工作……这是我们在周一提取报告时想到的上一个工作日,不包括周末。此表达式将添加到日期参数中
=Switch(WeekdayName(DatePart("w", Today)) = "Wednesday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Thursday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Friday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Saturday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Sunday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -3) , Today()),
WeekdayName(DatePart("w", Today)) = "Monday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -4) , Today()),
WeekdayName(DatePart("w", Today)) = "Tuesday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today())
)
继续探索这一点,并在这里与其他人合作……这是我们提出的,以查看前一个工作日,并排除周末时,在周一拉报告。此表达式将添加到日期参数中
=Switch(WeekdayName(DatePart("w", Today)) = "Wednesday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Thursday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Friday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Saturday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today()),
WeekdayName(DatePart("w", Today)) = "Sunday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -3) , Today()),
WeekdayName(DatePart("w", Today)) = "Monday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -4) , Today()),
WeekdayName(DatePart("w", Today)) = "Tuesday",DateAdd(DateInterval.Day
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
,DatePart(DateInterval.WeekDay, Today()) = 1, -2,True, -2) , Today())
)
这个表达式也会影响我最近使用的前一个工作日。只需使用此代码更新日期参数
=DateAdd("d",Switch(DatePart("w", Today) = 2,-3,DatePart("w", Today) = 1,-2,True,-1),Today)
这个表达式也会影响我最近使用的前一个工作日。只需使用此代码更新日期参数
=DateAdd("d",Switch(DatePart("w", Today) = 2,-3,DatePart("w", Today) = 1,-2,True,-1),Today)
你的意思是你想要某一天的前一个M-F工作日吗?不,我需要调出前一个星期五,并在报告中设置它。每个星期一我们都需要提取星期五的数据。你说的代码看起来不超过周末是什么意思?当报告在星期日、星期一、星期二、星期三等运行时,您是否可以编辑您的问题,以包括您对日期范围的期望?因此,我有报告说,业务每周一运行,但他们需要从上一个工作日星期五提取数据。我在参数中设置了表达式以提取前一个工作日,但它只返回星期天(根据上面的代码)。示例:10月4日星期一…我需要拉4/7的表达式(上一个工作日)有没有办法编写表达式跳过周末,只拉前一个工作日?你的意思是你想要给定日期的前一个M-F工作日?没有,我需要拉前一个星期五,并在报告中设置它。每个星期一我们都需要提取星期五的数据。你说的代码看起来不超过周末是什么意思?当报告在星期日、星期一、星期二、星期三等运行时,您是否可以编辑您的问题,以包括您对日期范围的期望?因此,我有报告说,业务每周一运行,但他们需要从上一个工作日星期五提取数据。我在参数中设置了表达式以提取前一个工作日,但它只返回星期天(根据上面的代码)。示例:星期一4/10…我需要表达式来拉4/7(上一个工作日)有没有办法编写表达式来跳过周末,只拉前一个工作日?