欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

一个sql语句的题目遇到有关问题了求解答

更新时间: 2014-01-05 02:14:33 责任编辑: Author_N1

 

一个SQL语句的题目遇到问题了求解答
select rq,(如果这里写上xm,max(n)就没效果),max(n) from (select rq,(select xm from ryb r,jkjl j where r.gh=j.gh)xm,max(n) from (select extract(year from rq) rq ,r.xm,
(sum(case when fx=0 then je else 0 end)-sum(case when fx=1 then je else 0 end)) n 
from jkjl j,ryb r where j.gh=r.gh group by r.xm,extract(year from rq))group by rq)group by rq

题目是:查询每年累计金额(累计金额=收款- 付款)最多的人,生成如下结果的报表:(5分)
年 姓名 累计金额
2006 张先生 2750.25
2007 王小姐 10.00

或者还有其他好办法吗
--参考方法--
引用:
感谢大神 结果出来了 另外over里面貌似那个单词打错了。。  难怪运行老是错。。  
就是不明白的是 over是什么意思  为什么rn=1 就 把最高金额的筛选出来了


失误失误了、 纯手工回复的 难免几个打错..

over 开窗函数 在oracle里面经常会用到 功能非常强大 LZ可以百度研究下 

最里面一层 是求每个人每天累计金额
中间一层是根据年份分组 按累计金额倒排序  rn就是排名金额最高排第一
最外面一层 就是取所有排名第一的数据 也就是每年排第一的人和金额
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:33
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7418/
本文WWW.DOC100.NET DOC100.NET版权所有。