利用存储过程中的变量对表中两个班级的数学成绩总和进行比较。
create proc cj_proc
@param1 char(10),@param2 char(10) --,@param3 char(10)
as 
select @param1=sum(maths) from course1 where class='三年一班'
select @param2=sum(maths) from course1 where class='三年二班'declare @param3 char(10)
select @param3=@param1-@param2 from course1
if @param3>0
     print '1>2'
else print '1<2'
//@param3=@param1-@param2 这块说是类型不同~不能直接转换
我用了convert 也不管用~谁来帮帮我啊

解决方案 »

  1.   

    create proc cj_proc
    @param1 decimal(4,1), @param2 decimal(4,1)
    as 
    select @param1=sum(maths) from course1 where class='三年一班'
    select @param2=sum(maths) from course1 where class='三年二班'declare @param3 decimal(4,1)
    select @param3=@param1-@param2
    if @param3>0
         print '1>2'
    else print '1<2'
      

  2.   

    create proc cj_proc
    @param1 decimal(18,1), @param2 decimal(18,1)
    as 
    select @param1=sum(maths) from course1 where class='三年一班'
    select @param2=sum(maths) from course1 where class='三年二班'declare @param3 decimal(18,1)
    select @param3=@param1-@param2
    if @param3>0
         print '1>2'
    else print '1<2'
      

  3.   

    数据类型错误。
    相减的地方用 convert 先转换。
      

  4.   

    create proc cj_proc
    @param1 decimal(4,1), @param2 decimal(4,1)
    as 
    select @param1=sum(maths) from course1 where class='三年一班'
    select @param2=sum(maths) from course1 where class='三年二班'declare @param3 decimal(4,1)
    select @param3=@param1-@param2
    if @param3>0
         print '1>2'
    else print '1<2'
      

  5.   

    修改数据类型或使用convert转换数据类型!