|
各位好,求教满期保费的计算方法,要从数据库的设计结构上考虑,如何能准确的计算出满期保费.关键在于能随时计算出任何一时间段内的满期保费.
对头!!!
我在想重新建立表,专门用于计算满期保费.问题的关键如何设计表的机构,使计算的更快,而且时间端可以任何选择.
如果指定时间段,按照楼二的方法,可以计算出来,但是几百万条记录的需要当时计算,效率不高.
我想选择任何时间段,能很快的出来数据.时间的变化对数据的显示不受影响.
不知一些人保\平安\太保,如何计算的?
虽然各保险业务系统的表结构不一样,但都可以整理成同时包含保险起期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
|