我在存储过程中有这样的一句话
declare @a int,
set @a=
select sum(thismonth) from #test
也就是查询得到总和,在后面使用,可是怎么写呀,这样写报错谢谢,分不多了,见谅

解决方案 »

  1.   

    declare @a int,@sql nvarchar(4000)
    set @sql='select sum(thismonth) from #test'
    exec(@sql)
    exec sp_executesql @sql,N'sum(thismonth) int output',@a output 
    select @a
      

  2.   

    declare @a int
    select @a=sum(thismonth) from #test
      

  3.   

    declare @a int,@sql nvarchar(4000)
    set @sql='select sum(thismonth) from #test'
    exec sp_executesql @sql,N'sum(thismonth) int output',@a output 
    select @a
      

  4.   

    declare @a int,
    set @a=(select sum(thismonth) from #test)
      

  5.   

    declare @a int
    set @a=(select sum(thismonth) from #test)
      

  6.   

    非常感谢,又有一点问题
    declare @idept VARCHAR(30)--部门
    declare @ccode VARCHAR(30)--科目
    declare @iyear VARCHAR(30) --年度
    declare @iMonth int        --月,存储的参数
    set @idept='10115%'
    set @ccode='10104%'
    set @iyear='2006'
    set @iMonth=5
    -----------------------
    --襄阳本月-------declare @total int,@sql char(5000)
    set @sql=
            'SELECT @a=sum(md) 
             FROM dbo.GL_accvouch_qry
             where  iperiod<=@imonth and cdept_id like @idept+'%' and ccode like @ccode+'%' and iyear=@iyear
    print @sql
    exec sp_executesql @sql,N'@a int output',@total output 
    print @total 
    这个 % 分号怎么写呀
      

  7.   


    declare @idept VARCHAR(30)--部门
    declare @ccode VARCHAR(30)--科目
    declare @iyear VARCHAR(30) --年度
    declare @iMonth int        --月,存储的参数
    set @idept='10115%'
    set @ccode='10104%'
    set @iyear='2006'
    set @iMonth=5
    -----------------------
    --襄阳本月-------declare @total int,@sql char(5000)
    set @sql='SELECT sum(md) FROM dbo.GL_accvouch_qry where iperiod<='+rtrim(@imonth)+' and cdept_id like '''+ @idept+'%'' and ccode like '''+ @ccode+'%'' and iyear='+@iyear
    print @sql
    exec sp_executesql @sql,N'@a int output',@total output 
    print @total