期货交易自动化论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 77|回复: 0

请教满期保费(已赚保费)的算法 - 金融行业 - ITPUB论坛-专业的IT技术社区

[复制链接] |主动推送

285万

主题

285万

帖子

855万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8553710
发表于 2022-9-11 11:15:16 | 显示全部楼层 |阅读模式
各位好,求教满期保费的计算方法,要从数据库的设计结构上考虑,如何能准确的计算出满期保费.关键在于能随时计算出任何一时间段内的满期保费.
对头!!!
我在想重新建立表,专门用于计算满期保费.问题的关键如何设计表的机构,使计算的更快,而且时间端可以任何选择.
如果指定时间段,按照楼二的方法,可以计算出来,但是几百万条记录的需要当时计算,效率不高.
我想选择任何时间段,能很快的出来数据.时间的变化对数据的显示不受影响.
不知一些人保\平安\太保,如何计算的?
虽然各保险业务系统的表结构不一样,但都可以整理成同时包含保险起期T_INSRNC_BGN_TM,保险止期T_INSRNC_END_TM,保费N_RealPRM(保单为签单保费,批单为变化值)的表或者视图T1。
在TIME1到TIME2这段时间的
满期保费=
SUM(DECODE
   (SIGN((TRUNC(T1.T_INSRNC_END_TM+1)-TRUNC(T1.T_INSRNC_BGN_TM))
   ),
   1,
   DECODE
     (SIGN(LEAST(TRUNC(T1.T_INSRNC_END_TM)+1,TRUNC(TIME1)+1)-GREATEST(TIME2,TRUNC(T1.T_INSRNC_BGN_TM))),-1,0,
   (LEAST(TRUNC(T1.T_INSRNC_END_TM)+1,TRUNC(TIME1)+1)-GREATEST(TIME2,TRUNC(T1.T_INSRNC_BGN_TM)))/(TRUNC(T1.T_INSRNC_END_TM+1)-TRUNC(T1.T_INSRNC_BGN_TM))),0)*T1.N_RealPRM
这是在oracle里的语法,如果是informaix可能用不成decode,可以用case when,其他函数如果没有,可以写个存储过程代替。
如果考虑速度,那只能提前规划好,把维度数据先算好,得总数了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|期货交易自动化论坛

GMT+8, 2024-11-24 21:52 , Processed in 0.119737 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表