SQLSERVER的公式计算方法介绍
今天在CSDN上读到一篇文章有关公式计算的,看了这里我有点怀疑自己写SQL的能力了,写了这么多年,以前碰到公式计算的问题都是按照DS的公式分析方法来做的,之前写的一个存储过程调用来调用,现在才知道原来这样要简单很多,快很多,哎,真是吃了没文化的大亏了。
以下转载自CSDN
--成本表
create table 成本表(id int,r_code int ,始重 decimal(20,2),末重 decimal(20,2) ,成本 decimal(20,2),续重成本 decimal(20,2) ,公式 varchar(100)) insert into 成本表 select 1,2,0.5,20,10,5,'(重量*2-1)*续重成本+成本' union all select 2,2,20,40,8,null,'重量*成本' go--计算的存储过程
create proc p_calc @r_code int, @重量 int, @结果 decimal(20,2) output as declare @s nvarchar(4000), @a nvarchar(4000) select @s='select @re='+公式+' from (select 成本=' +cast(isnull(成本,0) as varchar)+',续重成本=' +cast(isnull(续重成本,0) as varchar)+',重量=' +cast(isnull(@重量,0) as varchar)+') a' from 成本表 where r_code=@r_code and @重量 between 始重 and 末重 --set @a = @s+N'@re decimal(20,2) out' exec sp_executesql @s,N'@re decimal(20,2) out',@结果 out select @s go--调用示例
declare @结果 decimal(20,2) exec p_calc 2,15,@结果 out select 结果=@结果 go--删除测试环境
drop table 成本表 drop proc p_calc