Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403031
  • 博文数量: 105
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 889
  • 用 户 组: 普通用户
  • 注册时间: 2016-01-23 21:45
个人简介

目前在一家电信公司就职报表开发工程师,2010年开始从事运维方面的工作,期间从事过业务维护工程师、自动化运维工程师,2016年转为报表开发工程师。有耐心,抗压力、爱折腾,喜欢研究自动化工具。

文章分类

全部博文(105)

分类: 系统运维

2016-06-02 16:38:13

需求:
充值总笔数 笔数(单笔0-200元) 笔数(单笔201-300元) 笔数(单笔301-500元) 笔数(单笔501元及以上)

参照范例:
需求:统计WAIT_ORDER表中的工单总数、未处理工单总数、已完成工单总数、未完成工单总数。

表结构 : 为了举例子方便,WAIT_ORDER表只有两个字段,分别是ID、STATUS,其中STATUS为工单的状态。1表示未处理,2表示已完成,3表示未完成总数。

SQL:  

  1. SELECT   
  2.        COUNT(B.ID) AS 工单总数,  
  3.        COUNT(CASE  
  4.                WHEN B.status  IN ('1'THEN  
  5.                 'un_deal'  
  6.              END) 未处理工单总数,  
  7.                
  8.        COUNT(CASE  
  9.                WHEN B.status IN ('2'THEN  
  10.                 'had_complete'              
  11.              END) 已完成工单总数,  
  12.          
  13.        COUNT(CASE  
  14.                WHEN B.status = '3' THEN  
  15.                 'un_complete'              
  16.              END) 未完成工单总数  
  17.                           
  18.  FROM WAIT_ORDER B    

结果为下图:




需求解决方法:
select  sum(money_200),sum(money_300),sum(money_500),sum(money_501)  from  (
select case when  money<=200 then con else 0 end money_200, case when 200 where   t.create_time>=to_date('201605010000','yyyymmddhh24mi')
and  t.Order_State ='02'
and t.create_time<=to_date('201605072359','yyyymmddhh24mi')
and  t.Service_Type    in ('01','02','04','06','21','11','12')
group by t.Channel_Type,t.Service_Type,t.Income_Total_Money))



阅读(2096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~