员工部门表综合查询 题Word格式.docx
- 文档编号:22595837
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:19
- 大小:18.19KB
员工部门表综合查询 题Word格式.docx
《员工部门表综合查询 题Word格式.docx》由会员分享,可在线阅读,更多相关《员工部门表综合查询 题Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
(31)查询平均工资低于2000的部门及其员工信息。
(32)查询在SALES部门工作的员工的姓名信息。
(33)查询工资高于公司平均工资的所有员工信息。
(34)查询出与SMITH员工从事相同工作的所有员工信息。
(35)列出工资等于30部门中某个员工的工资的所有员工的姓名和工资。
(36)查询工资高于30部门工作的所有员工的工资的员工姓名和工资。
(37)查询每个部门中的员工数量、平均工资和平均工作年限。
(38)查询从事同一种工作但不属于同一部门的员工信息。
(39)查询各个部门的详细信息以及部门人数、部门平均工资。
(40)查询各种工作的最低工资。
(41)查询各个部门中不同工种的最高工资。
(42)查询10号部门员工及其领导的信息。
(43)查询各个部门的人数及平均工资。
(44)查询工资为某个部门平均工资的员工的信息。
(45)查询工资高于本部门平均工资的员工的信息。
(46)查询工资高于本部门平均工资的员工的信息及其部门的平均工资。
(47)查询工资高于20号部门某个员工工资的员工的信息。
(48)统计各个工种的员工人数与平均工资。
(49)统计每个部门中各工种的人数与平均工资。
(50)查询其他部门中工资、奖金与30号部门某员工工资、奖金都相同的员工的信息。
没有查询结果
(51)查询部门人数大于5的部门的员工信息。
(52)查询所有员工工资都大于1000的部门的信息。
(53)查询所有员工工资都大于1000的部门的信息及其员工信息。
(54)查询所有员工工资都在900~3000之间的部门的信息。
(55)查询有工资在900~3000之间的员工所在部门的员工信息。
(56)查询每个员工的领导所在部门的信息。
(57)查询人数最多的部门信息。
(58)查询30号部门中工资排序前3名的员工信息。
(59)查询所有员工中工资排序在5到10名之间的员工信息。
(60)查询指定年份之间入职的员工信息。
答案:
员工部门表综合查询60题(上)
CREATEDATABASEoa;
USEoa;
CREATETABLEdept(
deptnoINTPRIMARYKEY,
dnameVARCHAR(20),
locVARCHAR(20)
)
DROPTABLEemp
CREATETABLEemp(
empnoINTPRIMARYKEY,
enameVARCHAR(20)NOTNULL,
jobVARCHAR(20)CHECK(jobIN('
CLERK'
'
SALESMAN'
MANAGER'
ANALYST'
)),
mgpINT,
hiredateDATETIME,
salDECIMAL(10,2),
commDECIMAL(10,2),
DEPTNOINTFOREIGNKEYREFERENCESdept(deptno)
INSERTINTOdeptVALUES(10,'
ACCOUNTING'
NEWTORK'
INSERTINTOdeptVALUES(20,'
RESEARCH'
DALLAS'
INSERTINTOdeptVALUES(30,'
SALES'
CHICAGO'
INSERTINTOdeptVALUES(40,'
OPERATIONS'
BOSTON'
insertintoempvalues(7369,'
SMITH'
7902,'
1980-12-17'
1640,NULL,20);
insertintoempvalues(7499,'
ALLEN'
7698,'
1981-2-20'
11400,300,30);
insertintoempvalues(7521,'
WARD'
1981-2-22'
5200,500,30);
insertintoempvalues(7566,'
JOENS'
7839,'
1981-4-2'
7015,NULL,20);
insertintoempvalues(7654,'
MARTIN'
1981-9-28'
5200,1400,30);
insertintoempvalues(7698,'
BLAKE'
1981-5-1'
5900,NULL,30);
insertintoempvalues(7782,'
CLARK'
1981-6-9'
2470,NULL,10);
insertintoempvalues(7788,'
SCOTT'
7566,'
1987-4-19'
3040,NULL,20);
insertintoempvalues(7844,'
TURNER'
6200,0,30);
insertintoempvalues(7876,'
ADAMS'
7788,'
1981-9-8'
2240,NULL,20);
insertintoempvalues(7900,'
JAMES'
1987-5-23'
4000,NULL,30);
insertintoempvalues(7902,'
FORD'
1981-12-3'
insertintoempvalues(7934,'
MILLER'
7782,'
1982-12-3'
2620,NULL,10);
SELECT*FROMemp;
select*fromdept;
员工部门表综合查询60题
(1)查询20部门的所有员工信息。
select*fromempwheredeptno=20;
selectempno,ename,deptnofromempwherejob='
select*fromempwhereisnull(comm,0)>
sal
sal*0.2
select*fromemp
wherejob='
anddeptno=10
union
anddeptno=20
--
where(job='
anddeptno=10)
or(job='
(6)查询所有工种不是MANAGER和CLERK,
--且工资大于或等于2000的员工的详细信息。
wherejobnotin('
)
andsal>
=2000
selectdistinctjobfromemp
wherecommisnotnull
selectename,salisnull(comm,0)实发工资
fromemp
select*
wherecommisnullorcomm<
100
(10)查询各月倒数第3天(倒数第2天)入职的员工信息。
select*
whereDATENAME(day,hiredate3)=1
selectename姓名,hiredate雇用日期,datediff(year,hiredate,getdate())工资
wheredatediff(year,hiredate,getdate())>
=25
selectupper(SUBSTRING(ename,1,1))lower(substring(ename,2,(len(ename)-1)))
selectenamefromempwherelen(ename)=6
selectenamefromempwhereenamenotlike'
%S%'
selectenamefromemp
whereenamelike'
_M%'
selectename员工姓名,substring(ename,1,3)员工姓名的前三个字符
--返回被替换了指定子串的字符串。
--REPLACE(<
string_expression1>
,<
string_expression2>
string_expression3>
--用string_expression3替换在string_expression1中的子串string_expression2。
selectreplace(ename,'
S'
s'
selectename,hiredate
orderbyhiredate
(19)显示所有员工的姓名、工种、工资和奖金,按工种降序排序,
--若工种相同则按工资升序排序。
selectename,job,sal,comm
orderbyjobdesc
(20)显示所有员工的姓名、入职的年份和月份,
--按入职日期所在的月份排序,若月份相同则按入职的年份排序。
selectename,hiredate入职日期,DATENAME(yy,hiredate)入职的年份,datename(mm,hiredate)入职的月份
wheredatename(mm,hiredate)=2
selectename,datename(yy,hiredate)'
年'
datename(mm,hiredate)'
月'
datename(dd,hiredate)'
日'
工作期限
selectd.dname,count(empno)部门人数
fromempe
rightjoindeptdond.deptno=e.deptno
groupbyd.dname,e.deptno
havingcount(empno)>
=1
1
wheresal>
(
selectsalfromempwhereename='
selectename员工的姓名,(
selectenamefromempe2wheree2.empno=e1.mgp
)直接上级
fromempe1
selectename员工的姓名,hiredate入职日期,(
)直接上级,(
selecthiredatefromempe2wheree2.empno=e1.mgp
)直接上级入职日期
wheree1.hiredate<
(selecthiredate
fromempe2wheree2.empno=e1.mgp
selectdept.dname,emp.ename
fromdept
leftouterjoinemponemp.deptno=dept.deptno
leftouterjoindeptonemp.deptno=dept.deptno
selectdept.dname,emp.ename,emp.job
selectjob,sal
2500
员工部门表综合查询60题(下)
fromdeptleftouterjoinempondept.deptno=emp.deptno
wheredept.deptnoin(
selectdeptnofromemp
groupbydeptno
havingavg(sal)<
2000)
--法一:
表连接
wheredept.dname='
--法二:
子查询
select*fromemp
whereemp.deptno=(
selectdeptnofromdeptwheredname='
selectavg(sal)
fromemp)
select*fromempwherejob=(
selectjob
fromemp
whereename='
wheresalin(
selectsal
wheredeptno=30)anddeptno!
=30
wheresal>
all(
wheredeptno=30)
selectdname部门,count(ename)员工数量,isnull(avg(sal),0)平均工资,
isnull(avg(datediff(yy,hiredate,getdate())),0)平均工作年限
fromdeptd
leftouterjoinempeond.deptno=e.deptno
groupbyd.dname
wheree1.jobin(
selectdistincte2.job
fromempe2
wheree2.deptno!
=e1.deptno
selectd.dname部门名称,d.deptno部门编号,count(e.empno)人数,avg(e.sal)平均工资
groupbyd.deptno,d.dname
selectjob工种,min(sal)最低工资
groupbyjob
selectdname部门名称,job工种,max(isnull(sal,0))最高工资
fromdeptdleftjoinempeond.deptno=e.deptno
groupbyjob,dname
selectdeptno部门,ename姓名,(selecte2.enamefromempe2wheree2.mgp=e1.empno)上级领导
wheredeptno=10
selectdname部门名称,count(ename)部门人数,avg(isnull(sal,0))平均工资
fromdeptdleftouterjoinempeond.deptno=e.deptno
wheresalin(
fromempgroupbydeptno
wheree2.deptno=e1.deptno
select*,(selectavg(sal)fromempe2wheree2.deptno=e1.deptno)部门平均工资
selectavg(sal)fromempe2wheree2.deptno=e1.deptno
any(
selectsalfromempewheredeptno=20
(48)统计各个工种的员工人数与平均工资。
selectjob工种,count(empno)员工人数,avg(sal)平均工资
groupbyjob
selectdname部门,job工种,count(empno)人数,avg(isnull(sal,0))平均工资
(50)查询其他部门中工资、奖金与30号部门某员工工资、
--奖金都相同的员工的信息。
sele
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工部门表综合查询 员工 部门 综合 查询