
高分求解SQL问题!(急可+分)
题目1:显示各门课程的考场数目和可容纳的考生各数据表结构如下:表1:课程表TCcid课程idcname课程名Ctype考试方式表2:考场表TRRoomed考场idaddr...
题目1:显示各门课程的考场数目和可容纳的考生
各数据表结构如下:
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考场表 TR
Roomed 考场id
address 考场地址
Contain 容纳人数
表3:考场课程对应表 TCR
cid 课程id
roomId 考场id
题目2:显示考试安排有冲突的考生及考试课程和时间
所谓有冲突,就是指一个考生同一时间(或考试时间有交集)安排了两门及两门以上的考试
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考试表TE
eId 考试id
cid 课程id
beginTime 开始时间
endTime 结束时间
表3:考试安排表TSE
studentId 学生id
examId 考试id
最好能测试上图,一定会+分的!~ 展开
各数据表结构如下:
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考场表 TR
Roomed 考场id
address 考场地址
Contain 容纳人数
表3:考场课程对应表 TCR
cid 课程id
roomId 考场id
题目2:显示考试安排有冲突的考生及考试课程和时间
所谓有冲突,就是指一个考生同一时间(或考试时间有交集)安排了两门及两门以上的考试
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考试表TE
eId 考试id
cid 课程id
beginTime 开始时间
endTime 结束时间
表3:考试安排表TSE
studentId 学生id
examId 考试id
最好能测试上图,一定会+分的!~ 展开
2个回答
展开全部
1.
select cname as 课程名, count(*) as 考场数目, sum(contain) as 容纳考生数
from tc join tcr on tc.cid = tcr.cid join tr on tr.roomid = tcr.roomid
group by cname
select cname as 课程名, count(*) as 考场数目, sum(contain) as 容纳考生数
from tc join tcr on tc.cid = tcr.cid join tr on tr.roomid = tcr.roomid
group by cname
展开全部
题目1:显示各门课程的考场数目和可容纳的考生
select TCR.cid,max(TC.cname),count(TCR.roomID),sum(TR.contain) from TC,TR,TCR
where TC.cid=TCR.cid and TR.RoomID=TCR.RoomID
Group by TCR.cid
题目2:显示考试安排有冲突的考生及考试课程和时间
select * from
(select studentID,eid,Cname,BeginTime,EndTime From TE,TSE,TC
where TE.eID=TSE.examID and TC.cid=TE.cid) a,
(select studentID,eid,Cname,BeginTime,EndTime From TE,TSE,TC
where TE.eID=TSE.examID and TC.cid=TE.cid) b
where a.studentID=b.studentID and a.eid<>b.eid
and (a.BeginTime between b.BeginTime and b.endTime
or a.EndTime between b.BeginTime and b.endTime)
select TCR.cid,max(TC.cname),count(TCR.roomID),sum(TR.contain) from TC,TR,TCR
where TC.cid=TCR.cid and TR.RoomID=TCR.RoomID
Group by TCR.cid
题目2:显示考试安排有冲突的考生及考试课程和时间
select * from
(select studentID,eid,Cname,BeginTime,EndTime From TE,TSE,TC
where TE.eID=TSE.examID and TC.cid=TE.cid) a,
(select studentID,eid,Cname,BeginTime,EndTime From TE,TSE,TC
where TE.eID=TSE.examID and TC.cid=TE.cid) b
where a.studentID=b.studentID and a.eid<>b.eid
and (a.BeginTime between b.BeginTime and b.endTime
or a.EndTime between b.BeginTime and b.endTime)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询