| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1067 人关注过本帖
标题:[求助]关于存储过程的编写出现的问题
取消只看楼主 加入收藏
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
 问题点数:0 回复次数:9 
[求助]关于存储过程的编写出现的问题
存储过程定义如下:
CREATE PROCEDURE CAL_GPA
@SNO CHAR(7),
@GPA DEC(2,0) OUTPUT
AS
BEGIN
declare @GP4 DEC(2,0),@GP3 DEC(2,0),@GP2 DEC(2,0),@GP1 DEC(2,0);
SET @GP4=(SELECT SUM(4*CREDIT)/SUM(CREDIT) FROM Courses WHERE Courses.CNO IN (SELECT SC.CNO FROM SC WHERE SC.SNO=@SNO AND SC.GRADE>=85));
SET @GP3=(SELECT SUM(3*CREDIT)/SUM(CREDIT) FROM Courses WHERE Courses.CNO IN (SELECT SC.CNO FROM SC WHERE SC.SNO=@SNO AND SC.GRADE>=75 AND SC.GRADE<85));
SET @GP2=(SELECT SUM(2*CREDIT)/SUM(CREDIT) FROM Courses WHERE Courses.CNO IN (SELECT SC.CNO FROM SC WHERE SC.SNO=@SNO AND SC.GRADE>=60 AND SC.GRADE<75));
SET @GP1=(SELECT SUM(CREDIT)/SUM(CREDIT) FROM Courses WHERE Courses.CNO IN (SELECT SC.CNO FROM SC WHERE SC.SNO=@SNO AND SC.GRADE<60));
SET @GPA=(@GP4)+(@GP3)+(@GP2)+(@GP1);
IF @@rowcount=0
BEGIN
raiserror('error',16,1)
rollback transaction
END
END
GO


调用语句如下:
declare @GPA DEC(4,1)
execute CAL_GPA '0309203',@GPA OUTPUT
print @GPA



但是最后并没有输出GPA,请教错在哪
搜索更多相关主题的帖子: 编写 
2006-04-08 09:44
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
也是没有输出啊
怎么办啊?

2006-04-08 10:38
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
这样调以后显示一个表格,然后GPA为NULL,还是不对啊

2006-04-08 14:56
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
这个值没问题,数据库中有3条这个学号的成绩记录的

2006-04-08 21:24
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
好象我写的存储过程的语法是没问题的吧?
@GPA=(@GP1)+(@GP2)+.....这样加是可以的吧?

2006-04-08 21:28
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 

怎么插?这些语法不会哦


2006-04-08 22:00
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
以下是引用LouisXIV在2006-4-8 22:05:00的发言:
每一步后面你都加一句选取变量的值


具体该怎么弄?能说清楚点吗?我是个SQL新手,不会哦~~~

2006-04-08 22:07
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
试了,两列是正常的,有两列是NULL,是不是数字不能和NULL相加?
那我后面该如何修改?

2006-04-08 22:17
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 
终于成功~~~~~~
哈哈,原来NULL和数字是不能相加的,学到东西了
谢谢帮助我的LouisXIV以及cfg1014
LouisXIV已经是第二次帮我解决了问题了,谢谢

2006-04-08 22:30
duck3503
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-26
收藏
得分:0 

就是将CREDIT乘2取和除以CREDIT的取和


2006-04-09 09:10
快速回复:[求助]关于存储过程的编写出现的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035106 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved