是关于几条sql语句的问题不太会求请教。。。

鲨鱼代码 发布于 2017/11/08 16:19
阅读 118
收藏 1

华为云11月刊推送:DIY微信问答机器人,高性能计算代码的20个技巧!>>>

现在有一道题,就是有一张A表,里面有三个字段,部门字段,员工姓名字段,薪水字段,
现在的问题是写出一个sql语句,查询出A表里面部门最高薪水的员工姓名。
第二个问题是:查询出A表中所有的部门里面的薪水最高的员工的姓名。
第三个问题是:现在还有另外一张表B,和A表的字段是一模一样的,写出一个sql语句将
B表中的薪水的数据替换到A表中的薪水的字段数据下。
求大神们指点。。。。
      

加载中
0
houzhe11
houzhe11

第一道题目答案:

SELECT * from em_info where money in( select max(money) from em_info);

第二道题目答案:

select * from em_info where money in( select max(money) from em_info GROUP BY dept_no);

第三道题目答案:

UPDATE em_info B SET MONEY = (SELECT MONEY FROM em_info1 A WHERE A.EM_NAME=B.em_name)

步骤:

你先建立一个表,多练习。这个是基础的SQL

 

 

 

0
温安适
温安适
-- 1.第一个应该是某个部门,最高薪水的员工姓名吧
select t1.username
from A t1 join (select deptno, max(salary) s from A group by deptno) t2
   on t1.deptno=t2.deptno
and t1.salary=t2.s
and t1.deptno='某个部门'
-- 2.所有部门下的
select t1.username
from A t1 join (select deptno, max(salary) s from A group by deptno) t2
   on t1.deptno=t2.deptno
and t1.salary=t2.s
--3. B表数据更新A表数据
update A set salary=(select salary from B where A.userName=B.userName and A.deptno=B.deptno)
--写在最后,其实这些问题就是子查询,不过上边的SQL性能都不行,实际工作中建议分为2条SQL

 

返回顶部
顶部