关于累计总值计算的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 hehuan
  • 开始时间 开始时间
H

hehuan

Unregistered / Unconfirmed
GUEST, unregistred user!
比如某个厂有一个业务单子,是流水表:
第一笔 赚了 100 元 (累计值100)
第二笔 亏了 10 元 (累计值100-10=90)
第三笔赚了 30 元 (累计值90+30=120)
。。。
在每笔的旁边,有一个累计值,每次都是根据上一次的累计值来计算本次的累计值。
问题:如果按顺序输入数据,每次分别求累计值当然比较方便,但有时候因为某些款项出了问题修改了前面的某些记录,那后面的累计值必须重新计算!这种情况下,是不是要执行N条Update语句来分别更新累计值,如果数据量一旦比较庞大的话,这是一种效率极低的办法,有没有用简单办法就可以解决的?非常感谢!!
 
如果只是修改某一条的数据错误,不需要n条update命令吧,比如第K条多累加了100元,以后的累计值你可能需要都减少100元,那是不是应该把K条以后的累计值都减少100就可以?
 
累计值不必存放在表中,可以每次查询生成!
 
楼上说得没错.支持[:)]
 
还有点,点修改前面时也可以在更新后再来一次刷新就可以了
 
ID Item Income
1 生意 10000
2 生意 -5000
3 炒股 -1000
4 生意 20000
5 炒股 2000
select ID,
Item,
Income,
(select sum(Income) from TableName t2 where t2.ID<=t1.ID and t2.Item=t1.Item) "累计盈亏"
from TableName t1
ID Item Income 累计盈亏
1 生意 10000 10000
2 生意 -5000 5000
3 炒股 -1000 -1000
4 生意 20000 25000
5 炒股 2000 1000
 
select 项目 sum(盈亏) from Table (where .....) group by 项目
你的盈亏字段在输入金额时,如果是亏损的要加-号!
 
后退
顶部