有两张表:部门表department 部门编号dept_id 部门名称dept_name
员工表employee 员工编号empid 员工姓名e_name 部门编号dept_id 工资e_wage根据下列题目写出sql:
1、列出工资大于7000的员工所属的部门编号
2、列出员工表中的部门名称(左连接)
3、列出员工少于3人的部门编号
4、列出工资最高的员工姓名
5、求各部门的平均工资
6、求各部门的员工工资总额
7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于15000
8、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所以记录插入到employee2表中。
员工表employee 员工编号empid 员工姓名e_name 部门编号dept_id 工资e_wage根据下列题目写出sql:
1、列出工资大于7000的员工所属的部门编号
2、列出员工表中的部门名称(左连接)
3、列出员工少于3人的部门编号
4、列出工资最高的员工姓名
5、求各部门的平均工资
6、求各部门的员工工资总额
7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于15000
8、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所以记录插入到employee2表中。
Create table #department (dept_id int,dept_name nvarchar(20))
Create table #employee (empid int,e_name nvarchar(20),dept_id int,e_wage money)insert into #department
select 1,'aaa' union all
select 2,'bbb'insert into #employee
select 1,'张三',1,3000 union all
select 2,'李四',1,10000 union all
select 3,'王五',2,6000 union all
select 4,'赵六',2,15000 --1.列出工资大于7000的员工所属的部门编号
select dept_name from #employee inner join #department on #employee.dept_id=#department.dept_id
where e_wage>7000
group by dept_name
--2、列出员工表中的部门名称(左连接)
select e_name,dept_name from #employee left join #department on #employee.dept_id=#department.dept_id
--3、列出员工少于3人的部门编号
select dept_name,Count(#employee.empid) as '人员' from #employee inner join #department on #employee.dept_id=#department.dept_id
group by dept_name
HAVING Count(#employee.empid) < 3
--4、列出工资最高的员工姓名
select * from #employee
where e_wage =(select max(e_wage) from #employee)
--5、求各部门的平均工资
select dept_name,AVG(e_wage) as '平均工资' from #employee inner join #department on #employee.dept_id=#department.dept_id
Group by dept_name
--6、求各部门的员工工资总额
select dept_name,Sum(e_wage) as '工资总和' from #employee inner join #department on #employee.dept_id=#department.dept_id
Group by dept_name
--7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于15000
select max(e_wage),dept_name from #employee inner join #department on #employee.dept_id=#department.dept_id
where e_wage>=15000
group by dept_name
union all
select min(e_wage),dept_name from #employee inner join #department on #employee.dept_id=#department.dept_id
where e_wage<=5000
group by dept_name
--8、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所以记录插入到employee2表中。
insert into employee2 select e_name,dept_id,e_wage from #employee
select dept_id from employee where e_wage>70002、列出员工表中的部门名称(左连接)
select dept_name from department as d left join employee as e on e.dept_id=d.dept_id 3、列出员工少于3人的部门编号
select dept_id from employee group by dept_id having count(dept_id)<34、列出工资最高的员工姓名
select top 1 e_name from employee order by e_wage descending5、求各部门的平均工资
select dept_id, avg(e_wage) from employee group by dept_id我答了,错了大家不要笑啊
6、求各部门的员工工资总额
select dept_id,sum(e_wage) from employee group by dept_id7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于15000
select dept_id,max(e_wage),min(e_wage) from employee group by dept_id
having min(e_wage)<5000 and max(e_wage)>150008、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所以记录插入到employee2表中。
select * from employee
into employee2