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
或者还有其他好办法吗
sql
------解决方案--------------------
失误失误了、 纯手工回复的 难免几个打错..
over 开窗函数 在oracle里面经常会用到 功能非常强大 LZ可以百度研究下
最里面一层 是求每个人每天累计金额
中间一层是根据年份分组 按累计金额倒排序 rn就是排名金额最高排第一
最外面一层 就是取所有排名第一的数据 也就是每年排第一的人和金额