标题:我写了一串 sql 语句 求大神指点下错误在哪
只看楼主
诡面
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-18
结帖率:0
已结贴  问题点数:20 回复次数:3 
我写了一串 sql 语句 求大神指点下错误在哪
创建一个命名为P_成绩录入的存储过程,用户能够通过该存储过程逐条插入学生的成绩记录,
并且对成绩增加该学生的专业分,如果大于等于90分,专业分加4分;如果大于等于80分,专业分加3分
;如果大于等于70分,专业分加2分;如果大于等于60分,专业分加1分。以上命令组成一个显示事务


create proc P_成绩录入
@学号 varchar(4),@课程号 varchar(3),@成绩 int
as
begin tran
  insert into dbo.成绩(学号,课程号,成绩)
  values(@学号,@课程号,@成绩)
  update dbo.学生
  set 专业分=case
  when  @成绩>=90   then 专业分=专业分+4
  when  @成绩>=80   then 专业分=专业分+3
  when  @成绩>=70   then 专业分=专业分+2
  when  @成绩>=60   then 专业分=专业分+1
  end
  where  学号=@学号
rollback
搜索更多相关主题的帖子: create insert update values 记录 
2014-11-18 22:55
诡面
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-18
得分:0 
请哪位老师解答下 有点迷茫了
2014-11-18 23:03
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
得分:10 
create proc P_成绩录入
@学号 varchar(4),@课程号 varchar(3),@成绩 int
as
begin tran
  insert into dbo.成绩(学号,课程号,成绩)
  values(@学号,@课程号,@成绩)
  update dbo.学生
  set 专业分=isnull(专业分,0)+case
  when  @成绩>=90   then 4
  when  @成绩>=80   then 3
  when  @成绩>=70   then 2
  when  @成绩>=60   then 1
  end
  where  学号=@学号
rollback



create proc P_成绩录入
@学号 varchar(4),@课程号 varchar(3),@成绩 int
as
begin
    --插入之前就算好专业分
    declare @专业分 int
    Set @专业分=case
      when  @成绩>=90   then 4
      when  @成绩>=80   then 3
      when  @成绩>=70   then 2
      when  @成绩>=60   then 1
    end
  
  insert into dbo.成绩(学号,课程号,成绩,专业分)
  values(@学号,@课程号,@成绩,@专业分)
 
 end

天再高,踮起脚尖就能更接近阳光
2014-11-19 08:37
playyang123
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:70
专家分:332
注 册:2014-11-17
得分:10 
    public static void main(String[] args) {
//16. 由命令行输入一个专业分a,使用switch结构求出a的等级。A+4:90-100,
//B+3:80-89,C+2:70-79,D+1:60-69注:将命令行参数赋
//给a(int型)使用的语句为:Int a = Integer.parseInt(args[0]);
        int i;
        System.out.println("输入一个60到100的专业分");
        Scanner input=new Scanner(System.in);
        i=input.nextInt();
        int a=i/10;  
        switch(a){   
        case 10:  System.out.println("专业分为:A+4");   
        break;
        case 9: System.out.println("专业分为:A+4");  
        break;   
        case 8:System.out.println("专业分为:B+3");   
        break;
     case 7:System.out.println("专业分为:C+2");  
          break;   
          case 6:System.out.println("专业分为:D+1");   
          break;
        
            
        }
input.close();
    }
2014-11-20 10:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438834-1-1.html




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

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