前一天的计数周一除外,使用周五的计数

问题描述

我有以下代码。我正在比较今天和昨天的计数,除非日期落在星期一,然后我想使用星期五的计数。

select
cast(getdate() as date)run_dt,'dx' as db,'dbo' as [schema],'tb_cust' as [table],'completed status' as check_type,a.curr_cnt,a.prev_cnt,abs(cast((a.prev_cnt - a.curr_cnt) / cast(a.curr_cnt as decimal(10,2)) as decimal(5,2))*100) as cal_prcnt_dff,case 
when abs(cast((a.prev_cnt - a.curr_cnt) / cast(a.curr_cnt as decimal(10,2)) * 100  as int) ) >= 100
then 'Y'
else 'N'
end email_trigger,concat('count on',' ',@curr_dt,'[',datename(dw,@curr_dt),']','increased/decreased by 100% from',@prev_dt,@prev_dt),']') as 'comment'
from (select 
      sum(
      case 
      when a.custstatus = 'completed'
      and a.custdate = cast(getdate() -1 as date)
      then 1
      else 0
      end) curr_cnt,sum(
      case 
      when a.custstatus = 'completed'
      and a.custtdate = cast(getdate() -2 as date)
     --and cast(getdate() as date) in ()
     --and datepart(dw,getdate()) in (3,4,5,6)
       --or 
      then 1
      else 0
      end) prev_cnt,a.custstatus
      from cte_apt a
      where 1=1
      and a.custstatus = 'completed'
      group by 
      a.custstatus)a

当一天落在星期一时,我如何让 prev_cnt 计算星期五?

  sum(
  case 
  when a.custstatus = 'completed'
  and a.custtdate = cast(getdate() -2 as date)
 --and cast(getdate() as date) in ()
 --and datepart(dw,6)
   --or 
  then 1
  else 0
  end) prev_cnt,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)