等额本金还款利息计算求大神帮忙

复利公式计算本金和利息怎样算?
复利公式计算本金和利息怎样算?
09-01-24 &
1+1*20%*7*20%=1.28 复利:2+35832 单利:10000×(0.2×7+1)=24000 1*(1+20%)7= 注:上式中的“7”为7次方 1%)^7=35831.81 注:^7 代表乘方,即(1+20%)的7次幂 复利的话就是一万元乘以1.2也就是(1+20%)的7次方,最后本息和是3.5831808万元
请登录后再发表评论!查看: 1605|回复: 14
利息计算求助贴,万分感谢!(祝各位新年快乐)!
阅读权限20
在线时间 小时
本帖最后由 wenwu1981 于
08:38 编辑
新年快乐,我是搞财务的,有个利息计算,因为涉及笔数太多,银行利息的变化,计算利息时,绞尽脑汁也没想到个好的公式,求各位大神帮个忙,在附件里蓝格子位置帮想个好公式,能让我以后轻松些,不出错。
非常感谢,再次祝大家万事如意,阖家欢乐!
(4.62 KB, 下载次数: 18)
08:38 上传
点击文件名下载附件
阅读权限30
在线时间 小时
本金*天数=积数
积数*利率=利息
阅读权限90
在线时间 小时
理清思路是关键。。。。。。。。。
我都不知道上哪里找?贷款期限啥的都没有讲
我也没啥思路。。。。。。
阅读权限20
在线时间 小时
xutianlin 发表于
理清思路是关键。。。。。。。。。
感谢回复,可能我没表述清楚,我再次追加了表述,希望这次能看明白!!
阅读权限20
在线时间 小时
利息计算求助贴,万分感谢!(祝各位新年快乐,万事如意)!
新年快乐,我是搞财务的,有个利息计算,因为涉及笔数太多,银行利息的变化,计算利息时,绞尽脑汁也没想到个好的公式,求各位大神帮个忙,在附件里蓝格子位置帮想个好公式,能让我以后轻松些,不出错。
非常感谢,再次祝大家万事如意,阖家欢乐!
(6.22 KB, 下载次数: 15)
08:46 上传
点击文件名下载附件
阅读权限50
在线时间 小时
俺不懂财务,你先模拟计算一下,看看能不能帮你
阅读权限20
在线时间 小时
本帖最后由 xjralph 于
09:37 编辑
这样设计有意义吗?我也是企业里做融资核算工作的,实务中不是这样处理的,央行调整利率后,当天的利率就应该上浮了,不会等到下季度才调整的,
阅读权限20
在线时间 小时
xjralph 发表于
这样设计有意义吗?我也是企业里做融资核算工作的,实务中不是这样处理的,央行调整利率后,当天的 ...
兄弟啊,贷款合同里有条款约定嘛,我这里签订的贷款合同约定都是提款对应日调整利率,也就是说比如我是3月10号提款的,那么一年里调整利率对应日就是3、6、9、12的10日;若提款日是4月12提款的,那么一年里调整利率对应日就是1、4、7、9的12日。这就造成了季度计息时候要分段计提。
你了解的只是即期浮动。
阅读权限30
在线时间 小时
& & & & & & & &
(2.32 KB, 下载次数: 51)
10:44 上传
点击文件名下载附件
阅读权限20
在线时间 小时
& & & & & & & &
AAA456X 发表于
先表示感谢,我再认真看看你的思路和解法!!
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 7743|回复: 24
求类似于银行还款利息计算的sql
论坛徽章:1
背景:A表(Money,Up_date,Id)记录每一笔“收款计划”需要收款的金额数,截止时间
B表(Id,Money,Date,Par_Id)记录每一个“收款计划”收款金额,收款时间,收款计划Id以及自己的Id
一个收款计划对应多个收款(客户也不可能一次性的把钱全部打给你,对吧,分批打),也就是说A和B是一对多的关系
& && & 需求:当前日期超过收款计划截至日期是,进行罚款。罚:未收回来的钱的款,假设每天一万0.5元。
Money Up_date& && &Id
100& && & &&1
ID& &&&Money,& &Date,& && && &&&Par_Id
1& && & 10& && && & & && && & 1
1& && & 10& && && & & && && & 1
1& && & 10& && && & & && && & 1
1& && & 60& && && & & && && & 1
今天5月29号,计算规则:
(100-10)*0.5& & 这是5-01
(100-10-10)*0.5*8&&这是5-02到5-09(8天)
(100-10-10-10)*0.5*18& &这是5-10到5-27的(18天)
(100-10-10-10-60)*0.5*2& &这是5-28到今天的(2天)
当然,具体业务比这个复杂的多,这个求值是关键,请教各位大神?最好是单条sql解决而不是plsql代码,谢谢大神们。
求职 : 认证徽章论坛徽章:11
(select 100 money,
& && && &to_date('', 'yyyy-mm-dd') up_date, 1 id from dual),
b as
(select 1 id, 10 money, to_date('', 'yyyy-mm-dd') cdate, 1 par_id from dual
&&union
&&select 1, 10, to_date('', 'yyyy-mm-dd'), 1 from dual
&&union
&&select 1, 10, to_date('', 'yyyy-mm-dd'), 1 from dual
&&union
&&select 1, 60, to_date('', 'yyyy-mm-dd'), 1 from dual
&&union
&&select 1, 60, TRUNC(SYSDATE), 1 from dual)
SELECT UP_DATE,
& && & CDATE,
& && & last_value(MONEY) over(order by cdate ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) * .5 * result result
&&from (SELECT MONEY,
& && && && && &UP_DATE,
& && && && && &CDATE,
& && && && && &LAST_DATE,
& && && && && &(CASE
& && && && && &&&WHEN UP_DATE & CDATE THEN
& && && && && && &1
& && && && && &&&WHEN UP_DATE & LAST_DATE THEN
& && && && && && &CDATE - UP_DATE
& && && && && &&&ELSE
& && && && && && &CDATE - LAST_DATE
& && && && && &END) RESULT
& && && & FROM (select money,
& && && && && && && &&&up_date,
& && && && && && && &&&cdate,
& && && && && && && &&&last_value(cdate) over(order by cdate ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) last_date
& && && && && && &from (select a.money - sum(b.money) over(order by b.cdate) money,
& && && && && && && && && && & a.up_date,
& && && && && && && && && && & b.cdate
& && && && && && && && &&&from a, b)))复制代码然后不知道怎么搞了……
论坛徽章:1
moseslin 发表于
然后不知道怎么搞了……
感谢前辈,正在学习中,希望能有灵感。
论坛徽章:4
用分析函数sum算出当前还掉的,用总数减去当前还的就是用作计算利息的金额,至于过期天数的计算就对date大于 up_date的行用Lag取上一个日期,第一行的上一个用nvl设置为up_date
论坛徽章:1
dageji111 发表于
用分析函数sum算出当前还掉的,用总数减去当前还的就是用作计算利息的金额,至于过期天数的计算就对date大于 ...
我目前正是这样做的,你真是前辈,我想了很久才想到。哎,望尘莫及啊,我用的lead
求职 : 认证徽章论坛徽章:11
糗_蘑菇 发表于
感谢前辈,正在学习中,希望能有灵感。
哇,我都成前辈了,OO快来围观。
论坛徽章:126
没有那么复杂吧, 代码具体测试如下:
--注意: 今天是30号不是9号
SQL& select *
& &&&MONEY UP_DATE& && && && & ID
---------- ----------- ----------
& && & 100 & && && && & 1
SQL& select *
& && &&&ID& && &MONEY CDATE& && && &&&PAR_ID
---------- ---------- ----------- ----------
& && && &1& && && &10 & && && && &1
& && && &1& && && &10 & && && && & 1
& && && &1& && && &10 & && && && &1
& && && &1& && && &60 & && && && &1
SQL& select&&id,
&&2& && && & b_money,
&&3& && && & cdate,
&&4& && && & diff_ye * 0.5 * diff_dt &罚款金额&
&&6&&(select b.id,
&&7& && && & a.money a_money,
&&8& && && & a.up_date,
&&9& && && & b.money b_money,
10& && && & b.cdate,
11& && && & a.money - sum(b.money) over(order by b.cdate) diff_ye,
12& && && & case
13& && && && & when a.up_date & = b.cdate then
14& && && && && && &1
15& && && && & else
16& && && && && && &nvl(lead(b.cdate) over(order by b.cdate), trunc(sysdate, 'dd')) - b.cdate
17& && && & end diff_dt
18& &&&from a, b);
& && &&&ID& & B_MONEY CDATE& && && &罚款金额
---------- ---------- ----------- ----------
& && && &1& && && &10 & && && &&&45
& && && &1& && && &10 & && && &&&320
& && && &1& && && &10 & && && & 630
& && && &1& && && &60 & && && &&&10
银行的贷款系统计算罚款金额绝不可能是这样的, 如果表是这样设计的处理效率太糟糕了, 有严重的性能问题, 银行的这种贷款系统对于表的设计一定有非常成熟的方法, 当然这也是商业机密!
论坛徽章:1
bell6248 发表于
没有那么复杂吧, 代码具体测试如下:
版主霸气的sql省了两个select,但是有问题
1.各分析函数需要分组
2.Diff_Dat应该是为0才对
3.未考虑以下情况
a.我没有还款记录,如何统计罚款(可忽略)
b.假设我只有一条罚款记录,无论这条记录的还款时间是大于或小于截止时间,版主计算方法都是错的
论坛徽章:1
bell6248 发表于
没有那么复杂吧, 代码具体测试如下:
因为只有一条记录是,lead永远为空,那么永远是sysdate,举一个例子:
截止日期是
只有一条还款记录:
或者只有一条还款记录:
按照版主的统计,都是错的
论坛徽章:126
糗_蘑菇 发表于
因为只有一条记录是,lead永远为空,那么永远是sysdate,举一个例子:
截止日期是
只有一条还款 ...
如果按你说的问题楼上还有为给的语句运行得到的结果也是不对的,&&那我给的语句改改即可, 你自己在测试一下, 以后提问要说全
select&&id,
& && &&&b_money,
& && &&&cdate,
& && &&&diff_ye * 0.5 * diff_dt &罚款金额&
from& && && &
(select b.id,
& && &&&a.money a_money,
& && &&&a.up_date,
& && &&&b.money b_money,
& && &&&b.cdate,
& && &&&a.money - sum(b.money) over(partition by a.id order by b.cdate) diff_ye,
& && &&&count(*) over(partition by a.id) cnt,
& && &&&case
& && && &&&when a.up_date &= b.cdate then
& && && && && & 1
& && && &&&when a.up_date & b.cdate and count(*) over(partition by a.id) & 1 then
& && && && && & nvl(lead(b.cdate) over(partition by a.id order by b.cdate), trunc(sysdate, 'dd')) - b.cdate
& && && &&&when a.up_date & b.cdate and count(*) over(partition by a.id) = 1 then
& && && && && & b.cdate - a.up_date
& && &&&end diff_dt
& &from a, b
&&where a.id = b.par_id);
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号}

我要回帖

更多关于 活期利息计算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信