declare @sql nvarchar(2000)
set @sql=N'
select @SumPageBalance=SUM(Balance) from webuser where (webuserid not in (select top  '+cast(@Start as varchar)+'  webuserid from webuser order by webuserid)) AND (webuserid in (select top '+cast(@Last as varchar)+' webuserid from webuser order by webuserid)) 
'exec sp_executesql @sql,N'@SumPageBalance numeric(28,8) output',@SumPageBalance output

解决方案 »

  1.   

    set @SqlQuery='select SUM(Balance) from webuser where (webuserid not in (select top'+ LTRIM( STR(@Start))+' webuserid from webuser order by webuserid)) AND (webuserid in (select top'+ LTRIM( STR(@Last))+'  webuserid from webuser order by webuserid))'
    select @SumPageBalance=SUM(Balance) from webuser where (webuserid not in (select top  '+ltrim(@Start  ) webuserid from webuser order by webuserid)) AND (webuserid in (select top '+ltrim(@Last)+'  webuserid from webuser order by webuserid))
    exec(@SqlQuery) 
      

  2.   

    前后不是就是例子么,构造SQL咯
    先把@SqlQuery改为nvarchar
    declare @SqlQuery nvarchar(3000) set @SqlQuery='select @SumPageBalance=SUM(Balance) from webuser where (webuserid not in (select top'+ LTRIM( STR(@Start))+' webuserid from webuser order by webuserid)) AND (webuserid in (select top'+ LTRIM( STR(@Last))+'  webuserid from webuser order by webuserid))' 
    exec sp_executesql @SqlQuery,N'@SumPageBalance float output',@SumPageBalance output