| 发表于:2007-09-30 10:11:017楼 得分:0 |
create function jsbxje(@strrate nvarchar(100),@je money) returns money begin declare @ratetmp nvarchar(100), @rate nvarchar(10), @count tinyint, @start nvarchar(10), @end nvarchar(10), @bxje money declare @t_rate table ( startje nvarchar(10), endje nvarchar(10), rate nvarchar(50) ) set @ratetmp=@strrate --分解报销起始值与报销比例 set @count=len(@strrate)-len(replace(@ratetmp,')','')) set @start=left(@strrate,charindex('(',@strrate)-1) while @count> 0 begin set @strrate=stuff(@strrate,1,charindex('(',@strrate),'') set @ratetmp=left(@strrate,charindex(')',@strrate)-1) set @end=left(@ratetmp,charindex(':',@ratetmp)-1) set @rate=stuff(@ratetmp,1,charindex(':',@ratetmp),'') insert into @t_rate values(@start,@end,@rate) set @count=@count-1 set @start=@end set @end=99999999 end set @rate=stuff(@strrate,1,charindex(')',@strrate),'') insert into @t_rate values(@start,@end,@rate) --计算报销金额 select @bxje=cast((@je-startje)*(cast(rate as money)) as money) from @t_rate where @je> cast(startje as int) and @je <=cast(endje as int) return(@bxje) end | | |
|