标题:求助一个sql语句
只看楼主
zhjesse
Rank: 1
来 自:西藏拉萨
等 级:新手上路
帖 子:205
专家分:0
注 册:2007-4-3
 问题点数:0 回复次数:3 
求助一个sql语句
A01,A02,A03表中的字段是一样的,是个话单表
只是按月份建立的,话单的帐期
表中的字段有电话号码phonenum,一次通话的话费charge

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

谢谢了
对了,是oracle 数据库
搜索更多相关主题的帖子: sql 语句 数据库 电话号码 字段 
2008-01-09 15:11
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
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

我的msn: myfend@
2008-01-09 15:24
zhjesse
Rank: 1
来 自:西藏拉萨
等 级:新手上路
帖 子:205
专家分:0
注 册:2007-4-3
得分:0 
谢谢版主

oracle 中没top关键字
还有1月是top10的,
可能2月不一定
但3月也是top10

1+2+3还是top10,那么最后就不没有1个数据了

联合查询应该不要top吧

想了解西藏的天葬文化、藏北比如骷髅墙吗?[url=http://www.]【雪域藏北论坛】[/url]给你诠释!
2008-01-09 15:56
zhjesse
Rank: 1
来 自:西藏拉萨
等 级:新手上路
帖 子:205
专家分:0
注 册:2007-4-3
得分:0 
搞定

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

想了解西藏的天葬文化、藏北比如骷髅墙吗?[url=http://www.]【雪域藏北论坛】[/url]给你诠释!
2008-01-09 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-196672-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.399004 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved