日期:2014-05-18  浏览次数:20635 次

请求帮助:对于存储过程和自定义函数运用范围的一点疑惑
create   procedure   tjfe   @kmdm   varchar(20),@yf   varchar(2),@SumVal   Decimal(18,2)   Output
as
declare     @SqlTxt   nvarchar(4000)
declare     @Sum   Decimal(18,2)
Set   @SqlTxt= 'select   @SumVal=Sum(isnull(j,0))     from   pz '+@yf+ '   where   kmdm   like   ' ' '+@kmdm+ '% ' ' '
exec   sp_executesql   @SqlTxt,     N '@SumVal     Decimal(18,2)   OutPut ',     @SumVal   OutPut
select   @SumVal

在查询分析器中执行:
exec   dbo.tjfe   '1001 ', '02 ', '0 '
exec   dbo.tjfe   '1002 ', '02 ', '0 '  
可以分别返回数值,我现在要把这返回的值进行相加或者其他四则运算,应该怎么做呢?

我原来用的是函数tjfe,通过select   dbo.tjfe( '1001 ', '02 ')+dbo.jfe( '1002 ', '01 ')这样的方式可以直接返回四则运算的结果.

在改造成过程后,就不能这样运算了,请问我想达到上述效果应该怎么办?我是在delphi中运用.

------解决方案--------------------
在查询分析器中执行:
declare @SumVal Decimal(18,2)
exec dbo.tjfe '1001 ', '02 ',@SumVal Output
exec dbo.tjfe '1002 ', '02 ',@SumVal Output