日期:2014-05-17  浏览次数:20867 次

求一sql语句,oracle数据库的
A01,A02,A03表中的字段是一样的,是个话单表 
只是按月份建立的,话单的帐期 
表中的字段有电话号码phonenum,一次通话的话费charge 

请问大家,比如说,怎么查1,2,3三个月花费最高的前10名电话号码啊,就是前三个月总和最高的前10个号码? 

谢谢了 
对了,是oracle 数据库

------解决方案--------------------
不知道是不是这个意思

select phonenum,sum(charge) as total from (
select phonenum,charge from a01
union
select phonenum,charge from a02
union
select phonenum,charge from a03
 ) a where rownum<=10 group by phonenum order by total desc;
------解决方案--------------------
try it ..

SQL code

select tt.phonenum
  from ( 
        select AA.phonenum,
               sum(AA.charge) as all_charges
          from (       
                select phonenum,charge from A01
                union all
                select phonenum,charge from A02
                union all
                select phonenum,charge from A03
               )AA
         group by AA.phonenum
         order by 2 desc
       )tt
 where rownum <= 10;