mysql的case when 和set 变量的使用

业务要求:


城市:如皋
1.订单金额小于1.5元订单数
2. 订单金额大于等于1.5小于2元的订单数
3.订单金额大于等于2小于2.5元的订单数
4.订单金额大于等于2.5元订单数

sql语句:

set @betinTime='2019-08-08 00:00:00';
set @endTime='2019-08-08 23:59:59';

select  tt.h1,tt.h2,tt.h3,tt.h4, sum(tt.h1+tt.h2+tt.h3+tt.h4)  from (
select   count(case when t.total_amount <1.5 then 1 else null end ) as h1,count(case when t.total_amount >= 1.5 and t.total_amount<2 then 1 else null end ) as h2, count(case when t.total_amount >=2 and t.total_amount<2.5 then 1 else null end ) as h3,count(case when t.total_amount >=2.5 then 1 else null end ) as h4 from (
select a.order_no,a.total_amount  from orders_0 as a,orders_user_0 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_1 as a,orders_user_1 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_2 as a,orders_user_2 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_3 as a,orders_user_3 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_4 as a,orders_user_4 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_5 as a,orders_user_5 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_6 as a,orders_user_6 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_7 as a,orders_user_7 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_8 as a,orders_user_8 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42  union all
select a.order_no,a.total_amount  from orders_9 as a,orders_user_9 as b where a.order_no=b.order_no and  b.end_time>= @betinTime and b.end_time<=@endTime  and a.operate_area_id=1065  and a.company_id=42 
)as t
)as tt

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值