求sql server 2000查询语句

学生表s(学号 姓名 性别 年龄 班级)
课程表k(课号 课名 工号)
成绩表c(学号 课号 成绩)
教师表t(工号 姓名 性别 出生日期 职称)
1.查询每门课的课名和平均成绩,按降序显示。
2.查询英语课第一名的姓名和成绩。

读者表d(借书证号 姓名 性别 电话 部门号)
图书表t(书号 书名 定价)
借阅表j(借书证号 书号 借书日期 还书日期)
部门表b(部门号 部门名 电话 负责人 人数)
3.查询每名读者的姓名、部门名和借书册数。
4.查询借书册数最多的读者借书证号和册数。

急用 谢谢!

create database student; //先建立个数据库
create table s //学生表s
(学号 char(12),
姓名 varchar(20),
性别 char(2),
年龄 int,
班级 char(20));

create table k //课程表k
(课号 char(12),
课名 varchar(20),
工号 int);

create table c //成绩表c
(学号 char(12),
课号 varchar(20),
成绩 int);

create table t //教师表t
(工号 char(12),
姓名 char(10),
性别 char(2),
出生日期 datetime,
职称 char(8)
);

然后最近填入数据,

1.select 课名,avg(成绩)
from K,C
where K.课号=c.课号
group by 课名

2.select 姓名,成绩
from S,C c1,K
where s.学号=c1.学号 and c1.课号=k.课号
and k.课名='英语' and 成绩 =(select max(成绩) from c where 课号=c1.课号)

create table d //读者表d
(借书证号 char(12),
姓名 varchar(20),
性别 char(2),
电话 int,
部门号 char(20));

create table t //图书表t
(书号 char(12),
书名 varchar(20),
定价 int);

create table j //借阅表j
(借书证号 char(12),
书号 varchar(20),
借书日期 dayetime,
还书日期 dayetime);

create table b //部门表b
(部门号 char(12),
部门名 varchar(20),
电话 int,
负责人 varchar(20),
人数 int);

然后最近添入数据;

3.select 姓名,部门名,(select count(*) from j where 借书证号=d.借书证号)
from d,b
where d.部门号=b.部门号
4.
select 借书证号,num
from (
select 借书证号,count(*) num
from j
group by 借书证号) a
where num =(
select max(num) from (select count(*) num from j)
)

好了,这里面有的你关键字还有外键 没跟我说 所以我没法写出来,如果有问题在跟我说
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-12
1.select 课名,avg(成绩)
from K,C
where K.课号=c.课号
group by 课名
2.select 姓名,成绩
from S,C c1,K
where s.学号=c1.学号 and c1.课号=k.课号
and k.课名='英语' and 成绩 =(select max(成绩) from c where 课号=c1.课号)
3.select 姓名,部门名,(select count(*) from j where 借书证号=d.借书证号)
from d,b
where d.部门号=b.部门号
4.
select 借书证号,num
from (
select 借书证号,count(*) num
from j
group by 借书证号) a
where num =(
select max(num) from (select count(*) num from j group by 借书证号)
)本回答被提问者采纳
第2个回答  2010-05-12
这种问题回答过很多了。
1、select 课名,avg(成绩) as 课程平均成绩
from 课程表K as k join 成绩表C as C on k.课号=c.课号
group by 课名
order by 课名 desc

2、这个问题一楼回答的明显是错误的。
select 姓名,成绩
from 学生表S as S,课程表K as K,成绩表C as C
where S.学号=C.学号 and C.课号=B.课号
and K.课名=英语 and 成绩=(select max(成绩) from K,C where K.课号=C.课号 and 课名=英语 )这个不是连接查询,一楼的书连接查询(如果不了解连接就是这个好理解,先查询英语最高成绩。在查询学生

3、select 姓名,部门号,J.借书证号 count(借书证号)as 借书册数
from 读者表 D,借阅表 J,部门表 B
where D.借书证号=J.借书证号 and D.部门号=B.部门号
group by J.借书证号,姓名,部门号

一楼很好。
相似回答