如何将计算结果作为新的计算的初始条件

2025-04-28 05:11:46
推荐回答(1个)
回答1:

需要用到两个技巧,1、对null的处理可以使用isnull(值,0)的方式来处理,
比如:
select isnull(收入,0) 当收入为null时将计为0
2、用自定义函数处理,可能更简单
3、以下是写的整个测试实现

--1、创建测试表,有序列的ID是很重要的。
create table InOutDetail(inmoney money ,outmoney money,id int identity )

go
--2、插入测试数据
insert into InOutDetail(InMoney )
values(1000)
insert into InOutDetail(InMoney )
values(500)
insert into InOutDetail(outMoney )
values(600)
insert into InOutDetail(outMoney )
values(800)
insert into InOutDetail(InMoney )
values(2000)
insert into InOutDetail(outMoney )
values(300)

Go
--3、检查表中的数据
select * from InOutDetail

GO
--4、创建值函数
Create function fn_GetSum(@id int)
returns money
as
begin
declare @sum money
select @sum=sum(isnull(inmoney,0)) -sum(isnull(outmoney,0))
from InOutDetail
where idlt;=@id
return @sum
end

GO
--5、检测结果,以后直接调用函数就可以得出结果
select inmoney,OutMoney ,dbo.fn_GetSum(id) as 余额 from InOutDetail

Go
--6、删除测试数据
drop function fn_GetSum
drop table InOutDetail