我们假设一周从周一开始,到周日结束。 在尝试与去年进行比较时,我们如何才能获得正确的约会? 例如,如果我想比较本周(2017年10月23日至10月29日)与同一周(2016年10月24日至2016年10月30日)
我在SSRS BeginDate和BeginDateLastYear中设置了2个参数。 BeginDate的值= 10/23/2017 我怎样才能将BeginDateLastYear的值假设为去年同一周数的星期一(在这种情况下应该是2016年10月24日)?
目前我正试图在去年设置StartDate的值,如
BeginDateLastYear =DATEADD(DateInterval.Year,-1,Parameters!BeginDate.Value)
我也尝试使用
=DATEADD(DateInterval.Week,-52,Parameters!BeginDate.Value) , but not very sure will this work precisely to same week start date of last year
答案 0 :(得分:1)
在报告服务中,您可以对BeginDateLastYear
使用以下表达式select
代码逻辑:
如果回到52周两周的数字不匹配则回到53周,否则回到52周
如果你想在不使用第二个参数的情况下在SQL中实现它(SSRS在级联参数上有一些问题)
= DATEADD(
DateInterval.WeekOfYear,
IIF(
DATEPART(DateInterval.WeekOfYear,DATEADD(DateInterval.WeekOfYear, -52 , Parameters!BeginDate.Value))<> DATEPART(DateInterval.WeekOfYear, Parameters!BeginDate.Value) ,
-53,
-52
) ,
Parameters!BeginDate.Value
)