有表A
日期       站名    货物净重          拒收量
2011.7.1    甲      1000           
2011.7.1    乙      800                70
2011.7.2    甲      1100               120
2011.7.2    乙      900                
.......................
我想计算每站的货物接收率
公式: 接收率=每站拒收量/(每站全月货物净重+每站拒收量)
这个SQL该怎么写.

解决方案 »

  1.   

    -- 假设你的日期字段是 date类型
    -- 计算的是每月 货物接收率
    select to_char(a.日期,'YYYY-MM') as 日期, a.站名, 
           sum(nvl(a.拒收量,0))/sum(nvl(a.货物净重,0)+nvl(a.拒收量,0)) as 货物接收率
    from a
    group by to_char(a.日期,'YYYY-MM') as 日期, a.站名;
      

  2.   

    select DATE_FORMAT(日期,'%Y%m'), 站名,sum(拒收量)/(sum(拒收量)+sum(货物净重)) as 接收率
    from 有表A
    group by DATE_FORMAT(日期,'%Y%m'), 站名