紧急求助,高手一定会,今天晚上能解决吗???

xiaosong20 2005-05-10 09:52:02
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄;
C (C#,CN ) C#,CN分别代表课程编号、课程名称;
SC ( S#,C#,G ) S#,C#,G分别代表学号、所选修的课程编号、学习成绩。
1.使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2.使用标准SQL嵌套语句查询选修课程编号为’c2’的学员姓名和所属单位
3.使用标准SQL嵌套语句查询不选修课程编号为’c5’的学员姓名和所属单位
4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5.查询选修了课程的学员人数
6.查询选修课程超过5门的学员学号和所属单位
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tdtjjiao 2005-05-11
  • 打赏
  • 举报
回复
--1.使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
select SN,SD
from S
where [S#] in(
select [S#] from C,SC
where C.[C#]=SC.[C#]
and CN=N'税收基础')

--2.使用标准SQL嵌套语句查询选修课程编号为’c2’的学员姓名和所属单位
select S.SN,S.SD
from S,SC
where S.[S#]=SC.[S#]
and SC.[C#]='c2'

--3.使用标准SQL嵌套语句查询不选修课程编号为’c5’的学员姓名和所属单位
select SN,SD
from S
where [S#] not in(
select [S#] from SC
where [C#]='c5')

--4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
right join C on SC.[C#]=C.[C#]
group by [S#]
having count(*)=count([S#]))

--5.查询选修了课程的学员人数
select 学员人数=count(distinct [S#]) from SC

--6.查询选修课程超过5门的学员学号和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
group by [S#]
having count(distinct [C#])>5)
zjcxc 2005-05-11
  • 打赏
  • 举报
回复
--1.使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
select SN,SD
from S
where [S#] in(
select [S#] from C,SC
where C.[C#]=SC.[C#]
and CN=N'税收基础')

--2.使用标准SQL嵌套语句查询选修课程编号为’c2’的学员姓名和所属单位
select S.SN,S.SD
from S,SC
where S.[S#]=SC.[S#]
and SC.[C#]='c2'

--3.使用标准SQL嵌套语句查询不选修课程编号为’c5’的学员姓名和所属单位
select SN,SD
from S
where [S#] not in(
select [S#] from SC
where [C#]='c5')

--4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
right join C on SC.[C#]=C.[C#]
group by [S#]
having count(*)=count([S#]))

--5.查询选修了课程的学员人数
select 学员人数=count(distinct [S#]) from SC

--6.查询选修课程超过5门的学员学号和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
group by [S#]
having count(distinct [C#])>5)

nuhaizhengfeng1 2005-05-11
  • 打赏
  • 举报
回复

1. select SC.S#, S.SN
from S,C,SC
where C.CN='税收基础' and
C.C#=SC.C# and
SC.S#=S.S#;

2.select S.SN, S.SD
from S,SC
where SC.C#='c2' and
SC.S#=S.S#;

3.select distinct S.SN, S.SD
from S,SC
where SC.C#<>'c5' and
SC.S#=S.S#;

4.select distinct S.SN, S.SD, count(SC.C#), t.num
from S,C,SC,(select count(*) num from C) t
where SC.S#=S.S# and
SC.C#=C.C#
having count(SC.C#)=t.num
group by S.SN, S.SD;

5.select distinct S.SN, S.SD, max(rownum)
from S,SC
where SC.S#=S.S#
group by S.SN, S.SD;

6.select distinct S.SN, S.SD, count(SC.C#)
from S,C,SC
where SC.C#=C.C# and
SC.S#=S.S#
having count(SC.C#)>5
group by S.SN, S.SD
mabuchi 2005-05-11
  • 打赏
  • 举报
回复
--1.使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
select SN,SD
from S
where [S#] in(
select [S#] from C,SC
where C.[C#]=SC.[C#]
and CN=N'税收基础')

--2.使用标准SQL嵌套语句查询选修课程编号为’c2’的学员姓名和所属单位
select S.SN,S.SD
from S,SC
where S.[S#]=SC.[S#]
and SC.[C#]='c2'

--3.使用标准SQL嵌套语句查询不选修课程编号为’c5’的学员姓名和所属单位
select SN,SD
from S
where [S#] not in(
select [S#] from SC
where [C#]='c5')

--4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
right join C on SC.[C#]=C.[C#]
group by [S#]
having count(*)=count([S#]))

--5.查询选修了课程的学员人数
select 学员人数=count(distinct [S#]) from SC

--6.查询选修课程超过5门的学员学号和所属单位
select SN,SD
from S
where [S#] in(
select [S#] from SC
group by [S#]
having count(distinct [C#])>5)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧