在项目中遇到了记录累加的问题,在论坛上遇到了同样的提问并且问答简单,大同小异,特总结如下:
现在数据库中有一个表:
表名:a
字段名 类型
YMDHM Datetime
DTRN Numeric(5,1)
表中的数据为
YMDHM DTRN
2004-4-8 23:00:00 1
2004-4-9 00:00:00 0
2004-4-9 01:00:00 0.5
2004-4-9 02:00:00 1
2004-4-9 03:00:00 0.5
2004-4-9 04:00:00 1.5
需要将表中DTRN的数据进行累加并在每天23:59:59 自动清零(即只累加一天的数据),累加后的表应为
YMDHM DTRN D
2004-4-8 23:00:00 1 1
2004-4-9 00:00:00 0 0
2004-4-9 01:00:00 0.5 0.5
2004-4-9 02:00:00 1 1.5
2004-4-9 03:00:00 0.5 2
2004-4-9 04:00:00 1.5 3.5
答案:
select YMDHM,DTRN,D=
(
select sum(DTRN) from a
where YMDHM <=aa.YMDHM and datediff(day,YMDHM,aa.YMDHM)=0
)
from a