公司名 company_name;
客户类型 type; 1-至尊VIP 2-普通VIP 3-会员 4-游客;
加入时间 inserttime;现在我想知道每间公司在某一时间段(例如2013-1-1至2013-2-1)内每种类型新加入客户的总数;
最终实现的效果如下:
公司名   客户类型1   客户类型2   客户类型3   客户类型4请问语句怎么写?谢谢大家了

解决方案 »

  1.   

    select company_name,case when 客户类型=1 then 1 else 0 end as 客户类型1,
    case when 客户类型=2 then 1 else 0 end as 客户类型2,
    case when 客户类型=3 then 1 else 0 end as 客户类型3,
    case when 客户类型=4 then 1 else 0 end as 客户类型4,
    COUNT(*) as 总数
    from tb
    where inserttime between StartTime and EndTime
    group by company_name
      

  2.   

    漏写了函数,补:
    select company_name,sum(case when 客户类型=1 then 1 else 0 end) as 客户类型1,
    sum(case when 客户类型=2 then 1 else 0 end) as 客户类型2,
    sum(case when 客户类型=3 then 1 else 0 end) as 客户类型3,
    sum(case when 客户类型=4 then 1 else 0 end) as 客户类型4,
    COUNT(*) as 总数
    from tb
    where inserttime between StartTime and EndTime
    group by company_name