MSSQL 嵌套查询 高手救命呀

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:30:45
请问下用MSSQL数据库中的<数据查询的实施>如何用查询语句实现
选课系统中stuchoose的
1.嵌套查询 — 查询选修了三门课程的学生情况
我只知道需要到count

可以参考下任务4:联接查询—查询08级软件技术班学生的选课情况。
操作步骤:
select * from course,s_choose,student
/*首先要选择course等数据库,不然就不能用course.cno等语句*/
where course.cno=s_choose.cno and student.sclassname='08级软件技术'
/*条件限制为当课程的号码和学生选课的号码相同,且班级名字是‘08级软件技术’才显示*/
select * from course inner join s_choose
on course.cno=s_choose.cno

还有
2.创建存储过程—带有输入参数与输出参数,得到某课程的选课人数,默认课程为“SQL Server数据库应用技术”

3.创建触发器—当有学生选修了某一门课程后,学生的选课人数(curnum)也要相应的加1,并且学生的选课人数(curnum)不能超过选课上限人数(ceilnum)。

4.给用户授权—只能查询课程信息、修改个人信息。

5.创建角色—管理用户权限(查询)

这5个问题,麻烦老大你们啦!!
最好解析下 我的数据库太烂了

1.DECLARE @T TABLE([id]INT,[names] NVARCHAR(10),[sub] NVARCHAR(10))
INSERT @T SELECT 1,N'张三',N'语文'
INSERT @T SELECT 2,N'张三',N'英语'
INSERT @T SELECT 3,N'张三',N'数学'
INSERT @T SELECT 4,N'李四',N'数学'
INSERT @T SELECT 5,N'王五',N'英语'
INSERT @T SELECT 6,N'王五',N'数学'

SELECT NAMES from @t where names in(select names from @t group by names having count(names)=3)group by names

NAMES
----------
张三

2.CREATE PROC MY_PROC
@kc NVARCHAR(50),
@sl INT output
AS
DECLARE @T TABLE([id]INT,[names] NVARCHAR(10),[sub] NVARCHAR(10))
INSERT @T SELECT 1,N'张三',N'语文'
INSERT @T SELECT 2,N'张三',N'英语'
INSERT @T SELECT 3,N'张三',N'数学'
INSERT @T SELECT 4,N'李四',N'数学'
INSERT @T SELECT 5,N'王五',N'英语'
INSERT @T SELECT 6,N'王五',N