现有张净值表value,示意如下:
id date value cvalue zzz zzl fund_id
1 2008-06-01 1 1 0 0 1
2 2008-06-02 1.2 1.2 0.2 0.2 1
3 2008-06-03 1.5 1.5 0.3 0.25 1
4 2008-06-04 1.0 1.0 -0.5 -0.33 1
5 2008-06-01 1 1 0 0 2
6 2008-06-02 1.5 1.5 0.5 0.5 2
7 2008-06-03 2.0 2.0 0.5 0.33 2
8 2008-06-04 1.0 1.0 -0.5 -0.5 2
. . . . . . .
. . . . . . .
. . . . . . .
N N N N N N N
value代表基金的净值,cvalue代表累计净值,zzz代表日增长值,zzfd代表日增长率(未涉及到分红,所以value和value相等)
zzz=value的当前值-value的前一条记录的值
zzl=zzz/前一条value的值
在mysql中如何实现插入value和cvalue的值之后 自动计算并插入当日zzz和zzl的值。看了下mysql的文档,mysql的触发器不能对当前的表进行插入操作,所以请教各位了。
另外问下 有设计过基金网站数据库的朋友嘛 有的话留下联系方式指点一下。
id date value cvalue zzz zzl fund_id
1 2008-06-01 1 1 0 0 1
2 2008-06-02 1.2 1.2 0.2 0.2 1
3 2008-06-03 1.5 1.5 0.3 0.25 1
4 2008-06-04 1.0 1.0 -0.5 -0.33 1
5 2008-06-01 1 1 0 0 2
6 2008-06-02 1.5 1.5 0.5 0.5 2
7 2008-06-03 2.0 2.0 0.5 0.33 2
8 2008-06-04 1.0 1.0 -0.5 -0.5 2
. . . . . . .
. . . . . . .
. . . . . . .
N N N N N N N
value代表基金的净值,cvalue代表累计净值,zzz代表日增长值,zzfd代表日增长率(未涉及到分红,所以value和value相等)
zzz=value的当前值-value的前一条记录的值
zzl=zzz/前一条value的值
在mysql中如何实现插入value和cvalue的值之后 自动计算并插入当日zzz和zzl的值。看了下mysql的文档,mysql的触发器不能对当前的表进行插入操作,所以请教各位了。
另外问下 有设计过基金网站数据库的朋友嘛 有的话留下联系方式指点一下。
还是写个存储过程吧
先计算出结果再插入
所有值是一起插入的
zzz=value的当前值-value的前一条记录的值
select *,a.value-ifnull(b.value,0) from tt a left join tt b on a.id=b.id-1
zzl=zzz/前一条value的值
select *,(a.value-b.value)/ifnull(b.value,1) from tt a left join tt b on a.id=b.id-1