SQL高手帮忙看下!

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:48:13
用SQL语句查询;
有两张表:dep部门,emp员工
dep表的字段:
dep_id;(主键)
dep_name;(部门名称)
emp表的字段:
emp_id;(主键)
dep_id;(外键)
emp_name;(员工名字)
emp_ralary;(员工工资)
emp_comm;(员工奖金)
各表中都有数据:因为数据太多:这里只写了一部份;
dep_id dep_name
20 Education
30 IT
10 local

emp_id dep_id emp_name emp_ralary emp_comm
150 20 DSAIO 1500 300
15 30 KIOQA 3000
126 20 IUAUI 1200 3000
189 30 IUQAO 1500
135 10 kKKQA 1800 150

问题:
1,查出工资+奖金超过2000元的员工;
2,按部门查出各部门的员工总数,以及工资最高和高低的员工;
3,查出Education部门的没有奖金所有员工信息;
4,查出员工总数少于5的部门;
5,查出员工名字第三个字母为A的所有员工信息。

--以下在SQL2005测试通过。
create table #dep(dep_id int,dep_name varchar(10))
insert #dep
select 20,'Education' union all
select 30,'IT' union all
select 10,'local'

create table #emp(emp_id int,dep_id int,emp_name varchar(10),emp_ralary int,emp_comm int)
insert #emp
select 150,20,'DSAIO', 1500, 300 union all
select 15,30 ,'KIOQA', 3000,null union all
select 126,20 ,'IUAUI', 1200, 3000 union all
select 189,30 ,'IUQAO', 1500,null union all
select 135,10 ,'kKKQA', 1800, 150

--1,查出工资+奖金超过2000元的员工;
select * from #emp where (emp_ralary+emp_comm)>2000

--2,按部门查出各部门的员工总数,以及工资最高和高低的员工;
/*
--按部门查出各部门的员工总数,以及最高和高低工资;
select d.dep_id,count(e.emp_id) empcount,max(e.emp_ralary) as maxralary,min(e.emp_ralary) as minralary
from (#emp e join #dep d on e.dep_id=d.dep_id)
group by d.dep_id
*/
--这个是