求助一个sql语句
A01,A02,A03表中的字段是一样的,是个话单表只是按月份建立的,话单的帐期
表中的字段有电话号码phonenum,一次通话的话费charge
请问大家,比如说,怎么查1,2,3三个月花费最高的前10名电话号码啊,就是前三个月总和最高的前10个号码?
谢谢了
对了,是oracle 数据库 select top 10 PhoneNum,Sum(Charge) Charge
from
( select top 10 PhoneNum,Sum(Charge) Charge from A01 group by PhoneNum Order by Sharge Desc
union all
select top 10 PhoneNum,Sum(Charge) Charge from A02 group by PhoneNum Order by Sharge Desc
union all
select top 10 PhoneNum,Sum(Charge) Charge from A03 group by PhoneNum Order by Sharge Desc
) x
group by PhoneNum
Order by Sharge Desc 谢谢版主
oracle 中没top关键字
还有1月是top10的,
可能2月不一定
但3月也是top10
1+2+3还是top10,那么最后就不没有1个数据了
联合查询应该不要top吧 搞定
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
页:
[1]
