| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1603 人关注过本帖
标题:SQL2008存储过程sql语句求助,已获得学分应该是7的,查询结果一直是NULL。jx ...
只看楼主 加入收藏
Lavender、
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
SQL2008存储过程sql语句求助,已获得学分应该是7的,查询结果一直是NULL。jx_Reports表中的Ccredit也是有数据的,请问哪里出错了吗
利用学生学号查询该名学生在指定学年,指定学期所获得的学分数以及还未获得的学分数,若该门课程尚无成绩或成绩小于60分,
则为尚未获得的学分,结果以变量形式输出(OUTPUT)。
CREATE PROCEDURE stu_proc_3
    @Sno NCHAR(6), @academicyear int, @term int,
    @GetCredits int OUTPUT, @NotGetCredits int OUTPUT
AS
    SELECT @GetCredits=SUM(Ccredit)
    FROM jx_Reports R, jx_Courses C
    WHERE AND Sno=@Sno AND YEAR(Racademicyear)=@academicyear
    AND Rterm=@term AND Score>=60

    SELECT @NotGetCredits=SUM(Ccredit)
    FROM jx_Reports R, jx_Courses C
    WHERE AND Sno=@Sno AND YEAR(Racademicyear)=@academicyear
    AND Rterm=@term AND (Score<60 OR Score IS NULL)
执行:
DECLARE @GetCredits int
DECLARE @NotGetCredits int
EXEC stu_proc_3 '101103',2010,1,@GetCredits OUTPUT,@NotGetCredits OUTPUT
SELECT 学号='101103', 已获学分=@GetCredits
未获学分=ISNULL(@NotGetCredits,0)
2016-11-24 17:07
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:20 
你输出是NULL,就表示没有查询到数据,有可能是语句不对,
其实,你可以把你存储过程的语句,直接在查询分析器上运行,看看是什么结果
或者,你把你表结构和数据列出来,测试一下
2016-11-24 20:30
Lavender、
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-24
收藏
得分:0 
回复 2楼 mywisdom88
好的谢谢。用你的方法已解决问题了~[
2016-11-24 22:13
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
是哪里错了。。。
我的方法,只是调试存储过程的方法,具体还是你自己解决了。。
2016-11-25 08:45
快速回复:SQL2008存储过程sql语句求助,已获得学分应该是7的,查询结果一直是NUL ...
数据加载中...
 
   



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

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