回 帖 发 新 帖 刷新版面

主题:请教个题目~

小弟刚学SQL,有个问题请教
假如有一员工表,我想查询各个部门工资第3高的员工(工资,部门员工姓名字段存在)
请大家帮我下!(注意下是各个部门)

回复列表 (共4个回复)

沙发

select top 1 from (select top 3 price from semiaproduct order by 工资 desc) a order by a.工资
没有测试过,不知对不对

板凳

你的答案应该是 选出工资第3高的员工 而不是各部门工资第3高的~

3 楼


select top 1 from (select top 3 price from semiaproduct order by 工资 desc) group by 部门 order by 工资

我修改一下,也不知道对不对,参考一下

4 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册