逻辑说明不清楚!cost_a=800*0.1   cost_b=850*0.6
中的800和850都是table_a的值?
0.1和0.6是哪来的?要得到的结果与table的业务逻辑需要说明再清楚点!

解决方案 »

  1.   

    select t.name,
           decode(t.name,
                  'a',
                  t.cost * (t1.sum_a1 / con_a1),
                  'b',
                  t.cost * t1.min_a1) as cost
    from table_a t,
           (select a1.name,
                   sum(a1.rate) as sum_a1,
                   count(*) as con_a1,
                   min(a1.rate) as min_a1
              from table a1
             group by a1.name) t1
    where t.name = t1.name
    order by t.name