If DATENAME('weekday', TODAY()) = 'Sunday'
then [Date] <= TODAY()-1
elseif DATENAME('weekday', TODAY()) = 'Monday'
then [Date] <= TODAY()-2
elseif DATENAME('weekday', TODAY()) = 'Tuesday'
then [Date] <= TODAY()-3
else [Date] = [Date]
end
我在Tableau中使用这个计算。我需要在SQL查询中使用类似的逻辑,它具有连续数周的每周聚合数据。因此,如何排除本周直到周三(同时显示前几周的所有数据(。
Date_week | 总计 |
---|---|
2021-10-24 | 30 |
021-10-31 | 40 |
2021-11-07 | 90 |
2021-11-14 | 130 |
2021-11-21 | 200 |
使用case statements
:
select *
from table
where [Date] <= case DATENAME('weekday', TODAY())
when 'Sunday' then TODAY()-1
when 'Monday' then TODAY()-2
when 'Tuesday' then TODAY()-3
else TODAY()