T-SQL,查询部门工资最高的员工信息

fei243451828 2010-09-06 10:31:33
select department,max(salary) from 员工信息表

group by department

这样可以查询部门最高的工资,但查不出是哪个人。
跪求。。
...全文
1277 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
haohouhou 2011-02-18
  • 打赏
  • 举报
回复
select * from 表名 where 工资 in (select max(工资) from table)
  • 打赏
  • 举报
回复
题目倒是不难想写一个效率高的查询就的想想了。。。。

每天回帖即可获得10分可用分!
leledashenqi 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 fei243451828 的回复:]
select department,max(salary) from 员工信息表

group by department

这样可以查询部门最高的工资,但查不出是哪个人。
跪求。。
[/Quote]


把你的表结构说一下
jointan 2010-09-06
  • 打赏
  • 举报
回复
忽略工资相同人的话(相同的话,一块列出)SQL如下:
SELECT lsb.部门,工资表.姓名,lsb.工资
FROM 工资表 INNER JOIN
(
SELECT lsa.部门,员工编号,工资 FROM 工资表
INNER JOIN (SELECT 部门,MAX(实发款) AS 工资
FROM 工资表
GROUP BY 部门) lsa
ON lsa.部门=工资表.部门 AND lsa.工资=工资表.实发款) lsb
ON lsb.员工编号=工资表.员工编号


我这个表里面,员工编号是唯一的,代表某一个人,姓名不是唯一的,允许重名
jointan 2010-09-06
  • 打赏
  • 举报
回复
估计只能用存储过程了
wangdetian168 2010-09-06
  • 打赏
  • 举报
回复
select department,max(salary),(select name from 员工信息表 where department=员工信息表.department and salary=员工信息表.salary) from 员工信息表

group by department
这个就可以查询了
jointan 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jointan 的回复:]
ACCESS正有办法:

SQL code
SELECT 工资表.部门, 工资表.姓名, 工资表.工资
FROM 工资表 INNER JOIN (SELECT 部门,FIRST(员工编号) AS 编号
FROM(
SELECT 部门,员工编号,工资
FROM 工资表
ORDER BY 工资 desc
) LSA GROUP BY 部门). AS lsb ON lsb.编号=工资表……
[/Quote]
刚用我们公司的工资表试了下,这方法不行,不好意思.....我再想想别的办法
moss1229 2010-09-06
  • 打赏
  • 举报
回复
select 姓名,薪水,部门 from 员工信息表 where 姓名=(select top 1 姓名 from 员工信息表 order by 薪水 desc)
bourbon1795 2010-09-06
  • 打赏
  • 举报
回复
用 top 不行吗?
jointan 2010-09-06
  • 打赏
  • 举报
回复
ACCESS正有办法:
SELECT 工资表.部门, 工资表.姓名, 工资表.工资
FROM 工资表 INNER JOIN (SELECT 部门,FIRST(员工编号) AS 编号
FROM(
SELECT 部门,员工编号,工资
FROM 工资表
ORDER BY 工资 desc
) LSA GROUP BY 部门). AS lsb ON lsb.编号=工资表.员工编号


其它的数据库不知道了,至少SQL Server中没有FIRST这个函数

不知道SQL Server中哪个函数可以替代FIRST
jointan 2010-09-06
  • 打赏
  • 举报
回复
是要列出每个部门工资第一名的人吧,这个问题好象有点难度
fei243451828 2010-09-06
  • 打赏
  • 举报
回复 1
就直接用中文列名吧
zenglin200606 2010-09-06
  • 打赏
  • 举报
回复
select 员工名,max(salary) from 员工信息表
wuyq11 2010-09-06
  • 打赏
  • 举报
回复

select * from 员工信息表 as t where [姓名]=(select top 1 [姓名] from 员工信息表 order by [工资] desc)
q107770540 2010-09-06
  • 打赏
  • 举报
回复
列出你的表结构
jointan 2010-09-06
  • 打赏
  • 举报
回复
人在这个表中是哪个字段?
jointan 2010-09-06
  • 打赏
  • 举报
回复
这样可以查出部门某人的最高工资,人呢?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧