主题:请教个题目~
zmaxlyxh
[专家分:1210] 发布于 2006-09-21 21:20:00
小弟刚学SQL,有个问题请教
假如有一员工表,我想查询各个部门工资第3高的员工(工资,部门员工姓名字段存在)
请大家帮我下!(注意下是各个部门)
回复列表 (共4个回复)
沙发
a97191 [专家分:4040] 发布于 2006-09-22 11:28:00
select top 1 from (select top 3 price from semiaproduct order by 工资 desc) a order by a.工资
没有测试过,不知对不对
板凳
zmaxlyxh [专家分:1210] 发布于 2006-09-22 15:42:00
你的答案应该是 选出工资第3高的员工 而不是各部门工资第3高的~
3 楼
hzdtf [专家分:0] 发布于 2006-09-22 17:41:00
select top 1 from (select top 3 price from semiaproduct order by 工资 desc) group by 部门 order by 工资
我修改一下,也不知道对不对,参考一下
4 楼
a97191 [专家分:4040] 发布于 2006-09-23 10:46:00
declare @t table(部门 char(10),姓名 char(20),工资 int)
insert @t select 'aa','dddd',800
union all select 'aa','aaaa',1000
union all select 'aa','bbbb',900
union all select 'bb','cccc',2000
union all select 'bb','eeee',5000
union all select 'bb','ffff',1800
union all select 'bb','gggg',1300
union all select 'aa','hhhh',600
select *from (SELECT *,Place=(SELECT COUNT(DISTINCT 工资) FROM @t WHERE 工资>=a.工资 and 部门=a.部门)
FROM @t a ) b where place=3
我来回复