求几个SQL的语句

用SQL Servers 2005来写。

下面这些是数据:

create table dept
(
p_c_deptid varchar(20) primary key,
c_deptname varchar(20)
)

create table edu
(
p_c_eduid varchar(20) primary key,
c_eduname varchar(20)
)

create table emp
(
p_c_empid varchar(20) primary key,
c_name varchar(20),
c_sex varchar(10),
c_deptno varchar(20),
c_eduid varchar(20),
f_sal float
)
insert into dept values ('001','生产部')
insert into dept values ('002','技术部')
insert into dept values ('003','开发部')
insert into dept values ('004','财务部')
insert into dept values ('005','办公室')
insert into dept values ('006','保卫科')

insert into edu values ('001','博士')
insert into edu values ('002','硕士')
insert into edu values ('003','学士')
insert into edu values ('004','大专')
insert into edu values ('005','中专')
insert into edu values ('006','高中')
insert into edu values ('007','职高')
insert into edu values ('008','初中')
insert into edu values ('009','小学')

insert into emp values ('001','李勇','男','001','001',900)
insert into emp values ('002','李勇波','男','001','002',1900)
insert into emp values ('003','李明','女','004','003',2900)
insert into emp values ('004','李洪','男','005','004',3900)
insert into emp values ('005','李丽','男','002','005',4900)
insert into emp values ('006','张宗','女','002','007',9100)
insert into emp values ('007','陈明','男','003','008',2700)
insert into emp values ('008','李华','女','006','003',3800)
insert into emp values ('009','李勇兵','女','006','002',900)
insert into emp values ('010','李勇国','男','003','009',520)

1、创建一个视图,实现 每个部门平均工资前3名的(可能有并列),并按照降序排序

2、创建一个视图,实现 子查询为查询出女的 是职高的 并且是001部门的 姓名和工资

3、修改两个视图的名字

注意:第二题是要用子查询。

第三题要用SQL语句来写。不能直接在界面上改名字。

请在SQL Servers 2005测试完后在回答~谢谢!

create view avgsal
as
select top (3) c_deptno,avg(f_sal) as 平均工资
from emp
group by c_deptno
order by '平均工资' desc
第一个测试成功。
第二题为什么非要用子查询啊,我先用连接查询吧
create view topfal
as
select c_name,f_sal
from emp as e join edu as ed on e.c_eduid = ed.p_c_eduid
join dept as d on e.c_deptno=d.p_c_deptid
where c_sex='女' and c_eduname='职高' and p_c_deptid=001

查询结果是没有数据的,你可以仔细对一下确实没有满足这样条件的。

用子查询
create view topfal
as
select c_name,f_sal
from emp
where c_sex='女' and p_c_deptid=001 and c_eduid =(select p_c_eduid from edu where c_eduname='职高')

sp_rename avgsal,avgsala
另一个一样
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜