日期:2014-05-17  浏览次数:20670 次

Oracle数据计算问题,恳请高手帮忙
现举一个表示例如下:
日期 Col_a Col_b Col_c
20061105 1000 0
20061212 1500 400
20061225 500 1000
20061217 1700 600
20070102 1500 300
20070120 800 0
20070115 1300 0
20070119 3000 -200
通过SQL语句累加计算将某月份以前的所有Col_a和减去Col_b和放到Col_c中,例如2006年12月的Col_c即为1000,2007年01月Col_c即为2700
实际表数据量接近10万条,而且还需要通过其他字段分组。


------解决方案--------------------
update tablename a set col_c=(
select sum(col_a)-sum(col_b) 差值 from tablename b where to_number(to_char(b.时间, 'yyyymm ')) <to_number(to_char(a.时间, 'yyyymm '))
);