30、列出各个部门的MANAGER(领导)的最低薪金
sql
Select min(sal),deptno
From emp
Where job = 'manager'
Group by deptno;
31、列出所有员工的年工资,按年薪从低到高排序
要用ifnull处理,要不然算出来都是空,按道理取个别名,再最后排序的时候用别名效率应该高一些
sql
Select e.ename,(ifnull(comm,0) + sal) * 12 yearsal
From emp e
Order by yearsal asc;
32、求出员工领导的薪水超过3000的员工名称与领导名称
sql
Select e.ename,a.ename
From emp e
Join emp a
On e.mgr = a.empno
Where a.sal > 3000;
33、求出部门名称中,带'S'字符的部门员工的工资合计、部门人数
看错题了,是部门名字里面带s的
先求部门里面带S的
Select deptno,dname
From dept
Where ename like '%s%'
再求这个表里的部门的员工工资合计,部门人数
sql
Select d.dname,count(e.ename),sum(e.sal)
From emp e
Right join (Select deptno,dname
From dept
Where dname like '%s%') d
On e.deptno = d.deptno
Group by d.deptno;
34、给任职日期超过30年的员工加薪10%
这里要用更新语句
sql
Update emp set sal = sal *1.1 where TimeStampDiff(year,hiredate,now()) > 30;