当天、三天、七天数据统计

语句一:

with s as (
            select cast(getdate() as date) as 'shift_date',1 as 'do_code','当天入库' as 'type'
            union all
            select cast(getdate() as date) as 'shift_date',0 as 'do_code','当天出库' as 'type'
            union all
            select cast(getdate() as date) as 'shift_date',1 as 'do_code','3天入库' as 'type'
            union all
            select cast(getdate() as date) as 'shift_date',0 as 'do_code','3天出库' as 'type'
            union all
            select cast(dateadd(dd,-1,getdate()) as date) as 'shift_date',1 as 'do_code','3天入库' as 'type'
            union all
            select cast(dateadd(dd,-1,getdate()) as date) as 'shift_date',0 as 'do_code','3天出库' as 'type'
            union all
            select cast(dateadd(dd,-2,getdate()) as date) as 'shift_date',1 as 'do_code','3天入库' as 'type'
            union all
            select cast(dateadd(dd,-2,getdate()) as date) as 'shift_date',0 as 'do_code','3天出库' as 'type'
            union all
            select cast(getdate() as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(getdate() as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-1,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-1,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-2,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-2,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-3,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-3,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-4,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-4,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-5,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-5,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type'
            union all
            select cast(dateadd(dd,-6,getdate()) as date) as 'shift_date',1 as 'do_code','7天入库' as 'type'
            union all
            select cast(dateadd(dd,-6,getdate()) as date) as 'shift_date',0 as 'do_code','7天出库' as 'type')

SELECT s.type,sum(hand_num) as 'in_out_qty'

  FROM [zws].[dbo].[zws] a left join s on a.shift_date=s.shift_date and a.do_code=s.do_code
  where a.shift_date>='2018-07-10'
  group by  s.type
  order by  s.type 

语句二:


select *,sum(qty) over(partition by right(shift_date,2) order by qty) as 'new_qty'
from 
(SELECT case when shift_date=cast(getdate() as date) and do_code=1 then '当天入库'
            when shift_date=cast(getdate() as date) and do_code=0 then '当天出库'
            when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-2,getdate()) as date) and do_code=1 then '3天入库'
            when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-2,getdate()) as date) and do_code=0 then '3天出库' 
               when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-7,getdate()) as date) and do_code=1 then '7天入库'
            when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-7,getdate()) as date) and do_code=0 then '7天出库' end as 'shift_date'
      ,sum(hand_num) 'qty'

  FROM [zws].[dbo].[zws]
  where shift_date>='2018-07-10'
  group by case when shift_date=cast(getdate() as date) and do_code=1 then '当天入库'
                when shift_date=cast(getdate() as date) and do_code=0 then '当天出库'
                when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-2,getdate()) as date) and do_code=1 then '3天入库'
                when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-2,getdate()) as date) and do_code=0 then '3天出库' 
                   when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-7,getdate()) as date) and do_code=1 then '7天入库'
                when shift_date<=cast(getdate() as date) and shift_date>=cast(dateadd(dd,-7,getdate()) as date) and do_code=0 then '7天出库' end 

) s
            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值