SQL,创建一个存储过程,接收学生姓名后返回该学生的课程总成绩。怎样做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL,创建一个存储过程,接收学生姓名后返回该学生的课程总成绩。怎样做?相关的知识,希望对你有一定的参考价值。

我给你写个例子:
create procedure getTotal
@studentname varchar(6),
@zongchengji int output //output表示输出参数
as
//假如,表中已给出总成绩
select @zongchengji=total from table where name=@studentname
go
这个存储过程大概是这样追问

太大概了。你就看看我的问题在哪里好了:
use student
go
if exists
(select name from sysobjects
where name='stu_info_pro' and type='p')
drop proc stu_info_pro
go
use student
go
create proc stu_info_pro
(@sname char(10))
as
select sum(result)'总成绩'
go
select a.student_name,b.result
from result_info a join student_info b
on a.student_id=b.student_id
and student_name=@sname
go

追答

你最终要得到的结果是学生姓名和总成绩,你光查询出来了,但没有显示呀。你可以定义一个变量来接收你查询的结果,然后再打印出来就行了。比如:
declare @name varchar(8),@sum int
select
@name=a.student_name,@sum=b.result //定义变量接收查询的结果
from result_info a join student_info b
on a.student_id=b.student_id
and student_name=@sname
print @name+convert(varchar(8),@sum) //在存储过程里面打印

追问

其实我的查询过程都有问题。 并没有显示命令已完成。 不过还是谢谢你,现在我已经解决了。

参考技术A 姓名=@aa 我有学生表和成绩表.不知道怎么做的.谢谢! 两个表靠什么字段关联? 还有这个靠一个sql语句就能跑出来,不用存储过程追问

我汗。。。 如果是SQL的话,应该是student_id吧,如果你的表建立的没得问题的话。

SQL创建一个存储过程,当变量输入一个学生的姓名的时候,返回这个学生的姓名,选修课程名称,成绩。

提示:create procedure 学生信息
@aa int
as
select * from 学生成绩 where 姓名=@aa

我有学生表和成绩表.不知道怎么做的.谢谢!

参考技术A 两个表靠什么字段关联?

还有这个靠一个sql语句就能跑出来,不用存储过程本回答被提问者采纳

以上是关于SQL,创建一个存储过程,接收学生姓名后返回该学生的课程总成绩。怎样做?的主要内容,如果未能解决你的问题,请参考以下文章

SQL创建一个存储过程,当变量输入一个学生的姓名的时候,返回这个学生的姓名,选修课程名称,成绩。

sql serve创建存储过程,查询指定学生的学号、姓名、课程名、成绩

用SQL创建存储过程的题目(SQL SERVER2000下)

sql 调用已经建立的存储过程

8.创建一个存储过程,查询某个学生某门课程的考试成绩(学生名和课程名为输入参数),要求显示姓名,课名和

建立一个存储过程student_info,要求根据班级查询学生的学号、姓名、课程号和分数(表结构如表2,表3)