有 两个表:表1:借支
姓名 日期 借支单号 借支金额 已还金额 未还余额
张三 99-1-1 000001 10000 0 10000
李四 99-1-2 000002 5000 0 5000
张三 99-2-1 000003 6000 0 6000
张三 99-3-1 000004 10000 0 15000
... ... ... ... .. .....
表2:还款
姓名 日期 还款单号 还款金额
当表2 输入单据时,表1 的“已还金额”“未还余额”根据表2的输入“还款金额”做相应更改。即:
表2:还款
姓名 日期 还款单号 还款金额
张三 99-4-3 000001 13000
表1:借支
姓名 日期 借支单号 借支金额 已还金额 未还余额
张三 99-1-1 000001 10000 10000 0
李四 99-1-2 000002 5000 0 5000
张三 99-2-1 000003 6000 3000 3000
张三 99-3-1 000004 10000 0 15000
... ... ... ... .. .....
表2再输入时:
姓名 日期 还款单号 还款金额
张三 99-4-3 000001 13000
张三 99-4-3 000002 8000
表1为:
表1:借支
姓名 日期 借支单号 借支金额 已还金额 未还余额
张三 99-1-1 000001 10000 10000 0
李四 99-1-2 000002 5000 0 5000
张三 99-2-1 000003 6000 6000 0
张三 99-3-1 000004 15000 5000 10000
... ... ... ... .. .....
---------------------------------------------------------------------------
--测试
--测试数据
create table 表1(姓名 varchar(10),日期 datetime,借支单号 char(6),借支金额 int,已还金额 int,未还余额 int)
insert 表1 select '张三','99-1-1','000001',10000,0 ,10000
union all select '李四','99-1-2','000002',5000 ,0 ,5000
union all select '张三','99-2-1','000003',6000 ,0 ,6000
union all select '张三','99-3-1','000004',15000,0 ,15000 --楼主原来这个数据应该不对
create table 表2(姓名 varchar(10),日期 datetime,还款单号 char(6),还款金额 int)
go
--处理的触发器
create trigger tr_insert on 表2
for insert
as
update a set
已还金额=case when (
select sum(case when 已还金额>0 then 未还余额 else 借支金额 end)
from 表1
where 未还余额>0 and 姓名=a.姓名 and 借支单号<=a.借支单号
)>a.未还余额 then b.还款金额-isnull((
select sum(case when 已还金额>0 then 未还余额 else 借支金额 end)
from 表1
where 未还余额>0 and 姓名=a.姓名 and 借支单号<a.></a.>),0)+isnull(a.已还金额,0)
else a.借支金额 end
,未还余额=case when (
select sum(case when 已还金额>0 then 未还余额 else 借支金额 end)
from 表1
where 未还余额>0 and 姓名=a.姓名 and 借支单号<=a.借支单号
)>a.未还余额 then a.借支金额-(b.还款金额-isnull((
select sum(case when 已还金额>0 then 未还余额 else 借支金额 end)
from 表1
where 未还余额>0 and 姓名=a.姓名 and 借支单号<a.></a.>),0)+isnull(a.已还金额,0))
else 0 end
from 表1 a,inserted b
where a.未还余额>0 and a.姓名=b.姓名 and isnull((
select sum(case when 已还金额>0 then 未还余额 else 借支金额 end)
from 表1
where 未还余额>0 and 姓名=a.姓名 and 借支单号<a.></a.>),0)<=b.还款金额
go
--插入记录测试
insert 表2 select '张三','99-4-3','000001',13000
--显示处理结果
select * from 表1
select * from 表2
--插入记录测试
insert 表2 select '张三','99-4-3','000002',8000
--显示处理结果
select * from 表1
select * from 表2
go
--删除测试
drop table 表1,表2
/*--测试结果
--第一次插入记录的更新结果:
姓名 日期 借支单号 借支金额 已还金额 未还余额
------ ------------------------- --------- --------- --------- ----------
张三 1999-01-01 00:00:00.000 000001 10000 10000 0
李四 1999-01-02 00:00:00.000 000002 5000 0 5000
张三 1999-02-01 00:00:00.000 000003 6000 3000 3000
张三 1999-03-01 00:00:00.000 000004 15000 0 15000
(所影响的行数为 4 行)
姓名 日期 还款单号 还款金额
----- -------------------------- --------- -----------
张三 1999-04-03 00:00:00.000 000001 13000
(所影响的行数为 1 行)
--第二次插入的结果:
姓名 日期 借支单号 借支金额 已还金额 未还余额
------ ------------------------------------ --------- -------- --------
张三 1999-01-01 00:00:00.000 000001 10000 10000 0
李四 1999-01-02 00:00:00.000 000002 5000 0 5000
张三 1999-02-01 00:00:00.000 000003 6000 6000 0
张三 1999-03-01 00:00:00.000 000004 15000 5000 10000
(所影响的行数为 4 行)
姓名 日期 还款单号 还款金额
------ ------------------------- ---------- ----------
张三 1999-04-03 00:00:00.000 000001 13000
张三 1999-04-03 00:00:00.000 000002 8000
(所影响的行数为 2 行)
--*/
分享到:
相关推荐
企业财务管理--借还款业业务账务处理系统 部门借还款财务系统分析 一:财务借还款分析: 1, 借款,借款人从财务借款,财务录入凭证操作:借:其他应收款 贷:现金 2, 报销一:单据金额大于借款金额:借款人报销时...
适用于大部分人的极简等额本息贷款提前还款计算器,仅需输入提前还款后剩余未还本金(剩余欠款)、目前月供数、年化贷款利率及提前还款生效年月等参数,即可同步得知因提前还款缩短后的最后还款年月时间。...
使用JAVA写的计算贷款还款每月明细的小程序
一款用于还款计划自动生成,贷款记录建立及查询的免费软件。主要功能可分为新建还款任务、历史记录搜索、到期合同查询. 通过新建还款任务可以增加新的客户资料及贷款记录,并可以生成还款计划表(excel文件). 通过...
代码 基于Logistic回归模型评估企业还款能力代码代码 基于Logistic回归模型评估企业还款能力代码代码 基于Logistic回归模型评估企业还款能力代码代码 基于Logistic回归模型评估企业还款能力代码代码 基于Logistic...
代码 基于Logistic回归模型评估企业还款能力 代码代码 基于Logistic回归模型评估企业还款能力 代码代码 基于Logistic回归模型评估企业还款能力 代码代码 基于Logistic回归模型评估企业还款能力 代码代码 基于...
交通银行还款计算器 交通银行信用卡还款额度的 月度还款 总共还款 等计算
按照公积金和商业贷款利率,根据您的月还款额度,得出还款年限和利息总额。使用方法:在 B2填入贷款总金额
延期还款协议书
网页版提前还贷计算器,可计算多次提前还款,何时还清贷款...利用这个计算器就可以计算出提前还款的利息,再跟转贷做对比,就知道自己要不要转了。 当然也可以根据每年提前还贷的金额制定生活开销计划,做到心中有数。
银行贷款还款计划表生成器v13.xls
该计算器可以根据贷款年限,贷款年利率,按照等额本金和等额本息方式详细的计算出每月需要还款的资金构成,以及计算两种方式所产生的差额。
还款协议书.docx
最新还款协议电子版还款协议样本一WORD文档版本.docx
贷款还款计算器,EXCEL,自定义每月还款金额,自定义每月还款利率
按揭贷款计算器 EXCEL,可精确算出需还款年限,为自己将来够买,购车,消费做一个明确的指示
本软件可以计算房屋贷款的还款信息,对等额本金方式和等额本息方式还款都可计算,还可以计算多次提前还款后的还款信息,也支持利率调整。特别提示:最近利息调整了,调整后第一个月的计算结果和银行的有点差别,但从第...
等额还款计算公式.xls