爱玺玺

爱玺玺的生活日记本。wx:lb87626

列出部分sqlserver较为经典的搜索

use BBB;

--工资大于员工SMITH的所有人

--select * from emp where sal>(select sal from emp where ename='SMITH');

--列出员工姓名和员工上级的姓名

--select e1.ename,e2.ename 上级 from emp e1,emp e2 where e1.mgr=e2.empno;

--列出员工入职日期晚于其上级的员工

--select e1.ename,e1.hiredate,e2.ename 上级,e2.hiredate from emp e1,emp e2 where e1.mgr=e2.empno and e1.hiredate>e2.hiredate;

--列出部门信息和部门的所有员工,没有员工的部门信息也要列出

--select * from emp right join dept on dept.deptno=emp.deptno

--列出各部门底薪最低的工作

--select min(sal),job from emp group by job;

--列出各部门最低薪金大于1500的所有工作

--select min(sal),job from emp group by job having min(sal)>1500;

--列出所有部门员工平均工作年限

--select avg(datediff(year,hiredate,getdate())) 平均工作多久,deptno from emp group by deptno;

--列出同种工作不同部门的员工组合

--自连接条件,e1.job=e2.job,e1.deptno<>e2.deptno,e1.empno<>e2.empno(排除自己),e1抛出条件在e2中,如果这个工作只有本部门有怎么办

--select e2.ename,e2.job,e2.deptno from emp e1 left join emp e2 on e1.job=e2.job and e1.deptno<>e2.deptno and e1.empno<>e2.empno


--列出部门详细信息和人数

--分析:先统计出各部门人数作为一个临时表

select count(*) c,deptno from emp group by deptno;

select d.deptno,d.dname,d.loc,isnull(e.c,0) 部门人数 from dept d left join (select count(*) c,deptno from emp group by deptno) e on d.deptno=e.deptno;

select * from dept;


发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5