日期:2014-05-17  浏览次数:20961 次

请教下各位同学,这个2道题目。表我已经建好了。
insert into tbStudent 
values
(1,'小强','男',20,'湖南省长沙市伍家岭江南苑9栋203号','0731-4230123','xq@sina.com');
insert into tbStudent
values
(2,'李云','女',19,'湖南省长沙市东风路东风新村21栋502号','0731-4145268','ly@163.com');
insert into tbStudent 
values
(3,'鲁智深','男',30,'湖南省株洲市601厂宿舍15栋308号','0732-8342567',null);
insert into tbStudent 
values
(4,'张飞','男',28,'湖南省郴洲市人民医院20栋301号','0735-2245214',null);
insert into tbStudent 
values
(5,'翠花','女',21,'湖南省长沙市望月湖12栋403号','0731-8325124','ch@sina.com');

--成绩表
create table tbExam
(
  s_ID number, --学生编号
  c_Name varchar2(20) not null, --课程名称
  Score number(6,2) check(Score between 0 and 100), --考试分数
  c_Date date, --考试时间
  primary key(s_ID,c_Name) --学生编号和课程名称做联合主键 
);

alter table tbExam
  add constraint fk_sid foreign key(s_id) references tbStudent(s_id);


insert into tbExam values(1,'C语言',78,to_date('2004-06-10','yyyy-mm-dd'));
insert into tbExam values(2,'C语言',90,to_date('2004-06-10','yyyy-mm-dd'));
insert into tbExam values(3,'C语言',0,null);
insert into tbExam values(3,'VB',35,to_date('2004-07-16','yyyy-mm-dd'));
insert into tbExam values(4,'VB',35,to_date('2004-07-16','yyyy-mm-dd'));
insert into tbExam values(5,'VB',85,to_date('2004-07-16','yyyy-mm-dd'));
insert into tbExam values(2,'网页编程',85,to_date('2004-08-20','yyyy-mm-dd'));
insert into tbExam values(3,'网页编程',85,null);
commit;


--18.列出每个学生的姓名和考试次数

--19.列出每个学生的姓名和考试次数,小于2次的不显示

------解决方案--------------------
--18
SQL code

SELECT s_Name, COUNT(1) AS "考试次数"
FROM tbStudent INNER JOIN tbExam
USING(s_ID)
GROUP BY s_Name;