select    fenbu,
--第一批
sum(case  pinum when '1' then fhstate end) /
count(case  pinum when '1' then fhstate end)  as '第一批送达率',
--第二批
sum(case  pinum when '2' then fhstate end)  /
count(case  pinum when '2' then fhstate end)  as '第二批送达率',from view_fhbg
group by fenbu
不知道这样的格式是不是对的

解决方案 »

  1.   

    其实,你已经把数据查询出来,直接相除就OK了。但是有一点,如果送达数和分配数都是整数,相除都到的结果也是整数,所以在计算之前,要将数据转换类型,如float,double,decimal等都行。另计算的结果的小数位数不是你想要的,也可以强制转换一下。
    下面就是转换的例子
    cast(cast(送达数 as decimal(13,2))/分配数 as decimal(13,2)) as 分配率
      

  2.   

    -- 3# 说的对,注意相除的的问题,要转化成小数的。
    -- 也可以直接 乘一下 1.0,也会转成小数。
    select    fenbu,
    --第一批
    sum(case  pinum when '1' then fhstate end)   * 1.00 / 
    count(case  pinum when '1' then fhstate end)  as '第一批分配数',
      

  3.   


    select    fenbu,pinum,sum(fhstate)*1./count(fhstate) as 分配率
    from view_fhbg
    group by fenbu,pinum