日期:2014-05-18  浏览次数:20578 次

又一个sql问题!!!游标
现在有一个表:表数据如下
  销售员 客户 奖金
  销售a 客户a 12
  销售a 客户b 11
  销售a 客户c 19
  销售b 客户a 12
  销售b 客户b 10
  销售c 客户c 12

  如果要查询每个销售员所对应的奖金最多的客户该怎么写?如销售a对应奖金最多的客户是客户c
使用游标该怎么实现?

------解决方案--------------------
SQL code

--一定要用游标吗?
select * from tb a
where not exists
(select 1 from tb where 销售员 = a.销售员 and 奖金>a.奖金)

------解决方案--------------------
SQL code
select * from 
(select rank() over(partition by 销售员 order by 奖金) no,* from tb)
where no=1

------解决方案--------------------
我记得这个问题他已经问过一边了,估计人家就是要游标。。
------解决方案--------------------
SQL code

--倒序排列
select * from   (select rank() over(partition by 销售员 order by 奖金 desc) no,* from tb)  where no=1

------解决方案--------------------
你这厮! 分多?发这么多贴
------解决方案--------------------
帖子多不要紧 一定要结啊...
------解决方案--------------------
我决定 他的每个帖子我都去蹭蹭分
------解决方案--------------------
SQL code

select 销售员,客户
from tb t
where 奖金 = (select max(奖金) from tb where 销售员 = t.销售员)