SQL复杂查询联系汇总(牵扯多表链…
来源:互联网 发布:大乐透算法必中5红万能 编辑:程序博客网 时间:2024/04/29 23:31
USE [study]
go
--1.查询雇员姓名,所在部门编号和名称
select EMP.ename,EMP.deptno,DEPT.dname from EMP,DEPT whereemp.deptno=dept.deptno;
--2.查询雇员姓名,工作,领导的姓名
select e1.ename,e1.job,e2.ename from EMP e1 inner join EMP e2on e1.mgr=e2.empno;--自链接
--3.查询雇员姓名,工作,领导姓名及部门名称
select e1.ename,e1.job,e2.ename,(select dept.dname fromDEPT
where e1.deptno=dept.deptno) from EMP e1 inner join EMP e2 one1.mgr=e2.empno;
--4.查询雇员姓名,工作,工资及工资等级
select EMP.ename,EMP.job,emp.sal,grade
from EMP inner join SALGRADE on emp.sal>=SALGRADE.losal andemp.sal<=SALGRADE.hisal;
select * from EMP;
--5.查询雇员姓名,工作,工资及工资等级,要求工资等级显示为A B C D E [case]
select EMP.ename,EMP.job,EMP.sal,'工资等级'=
case
when SALGRADE.losal>=700 and SALGRADE.hisal<=1200then'E'
when SALGRADE.losal>=1201 and SALGRADE.hisal<=1400then'D'
when SALGRADE.losal>=1401 and SALGRADE.hisal<=2000then'C'
when SALGRADE.losal>=2001 and SALGRADE.hisal<=3000then'B'
when SALGRADE.losal>=3001 and SALGRADE.hisal<=9999then'A'
else '可以回家了'
end
from EMP inner join SALGRADE
on emp.sal>=SALGRADE.losal andemp.sal<=SALGRADE.hisal;
--6.查询雇员姓名,工作,领导的姓名 (左连接 =(+) :以左表为主)
select e1.ename,e1.job,e2.ename from EMP e1 left join EMP e2on e1.mgr=e2.empno;
--7.查询雇员姓名,年薪,按年薪从高到低排序
select ename,(SAL*12) as 年薪 from EMP order by 年薪 desc;
--8.查询每个部门中工资最高的雇员姓名,工作,工资,部门名称,最后按工资从高到低排序????????
--selectemp.ename,emp.job,emp.sal,dept.dname
--from emp,dept where emp.deptno=dept.deptnoand
--emp.sal=(select max(sal) from EMP inner joinDEPT
--on emp.deptno=dept.deptno group by dept.deptno) order byemp.sal desc;
selectemp.ename,emp.job,emp.sal,dept.dname
from emp,dept,(select max(sal) maxsal from EMP inner joinDEPT
on emp.deptno=dept.deptno group by dept.deptno) t
where emp.deptno=dept.deptno and emp.sal=t.maxsal order byemp.sal desc;
--9.查询每个部门的雇员数量
select deptno,COUNT(empno) from EMP group by deptno;
--10.求出每个部门的平均工资
select deptno,AVG(sal) from EMP group by deptno;--显示部门编号
select DEPT.dname,AVG(sal) from EMP inner joinDEPT
on emp.deptno=dept.deptno group by dept.dname;--显示部门名称
--11.按部门分组,并显示部门的名称,以及每个部门的员工数
select DEPT.dname,COUNT(emp.empno) fromEMP,DEPT
where emp.deptno=dept.deptno group by dept.dname;
--12.要求显示平均工资大于2000的部门编号和平均工资
select dept.deptno,AVG(sal) fromDEPT,EMP
where dept.deptno=emp.deptno group by dept.deptno havingAVG(sal)>2000;
--13.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和 ,并且要满足从事同一工作的雇员
--的月工资大于$1500,输出结果按月工资的合计升序排列??????????
select t.job,sum(t.sal) sumsal
from (select job,SAL from EMP where job!='SALESMAN') t
where t.sal>1500 group by t.job order by sumsal asc;
--14.求出平均工资最高的部门
select top 1 deptno,AVG(sal) from EMP group by deptno order byAVG(sal) desc;
--15.要求查询出比7654工资要高的全部雇员的信息
select * from EMP where sal>(select sal from EMP whereempno=7654)
--16.要求查询工资比7654高,与7788从事相同工作的全部雇员信息
select * from EMP where sal>(select sal from EMP whereempno=7654)
and job=(select job from EMP whereempno=7788)
--17.查询出工资最低的雇员姓名,工作,工资
select ename,job,SAL from EMP where sal=(select MIN(sal) fromEMP );
--18.要求查询出部门名称,部门的员工数,部门的平均工资,部门的最低收入雇员姓名????????????????
select DEPT.dname 部门名称,COUNT(emp.ename) 员工数,AVG(sal) 平均工资,emp.ename 最低收入雇员
from EMP,DEPT,(select MIN(sal) minsal from EMP inner joinDEPT
on emp.deptno=dept.deptno group by dept.deptno) t
where emp.deptno=dept.deptno and emp.sal=t.minsal group by dept.dname;
0 0
- SQL复杂查询联系汇总(牵扯多表链…
- sql的多表链接查询中
- SQL 多个表链接JOIN统计条目查询
- SQL多表链接
- 多表链接查询语句
- mySQL多表链接查询
- mysql 多表链接查询
- sql笔记整理之多表链接查询
- C#连接SQL多条件复杂查询
- Sql复杂查询--多表联接
- sql 复杂查询 多表查询 分页查询
- SQL Server 复杂查询
- SQL复杂查询语句
- 其他复杂SQL查询
- Sql复杂查询
- sql复杂嵌套查询
- SQL复杂的查询
- SQL-(3) --复杂查询
- 【第一章 类与对象方法 】
- JDBC代码使用模板
- SQL查询语句大全(转载)
- SQL的链接、视图、事物、储存过程…
- SQL简单查询练习汇总(单个表)
- SQL复杂查询联系汇总(牵扯多表链…
- JQuery中如何提交(submit)和重置…
- JAVA常见异常汇总(net)
- html中通过css改变input样式特效(b…
- 几款input的样式
- 开源矩阵计算工具——Eigen的简单用法
- C程序设计题解与上机指导
- 关于public、private、protected、internal
- VS2010 将cs类文件转换成dll文件