数据库中记录累加的问题

jinhailv 2004-04-09 10:20:23
现在数据库中有一个表:
表名: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
请各位大哥指点指点,多谢了!!!
...全文
95 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinhailv 2004-04-14
  • 打赏
  • 举报
回复
多谢邹大哥指点!!!!
zjcxc 2004-04-09
  • 打赏
  • 举报
回复
--测试

--测试数据
create table a(YMDHM Datetime,DTRN Numeric(5,1))
insert a select '2004-4-8 23:00:00', 1
union all select '2004-4-9 00:00:00', 0
union all select '2004-4-9 01:00:00',0.5
union all select '2004-4-9 02:00:00', 1
union all select '2004-4-9 03:00:00',0.5
union all select '2004-4-9 04:00:00',1.5
go

--查询
select YMDHM,DTRN,D=(
select sum(DTRN) from a
where YMDHM<=aa.YMDHM and datediff(day,YMDHM,aa.YMDHM)=0)
from a aa
go

--删除测试
drop table a

/*--测试结果

YMDHM DTRN D
------------------------------------------------------ ------- --------
2004-04-08 23:00:00.000 1.0 1.0
2004-04-09 00:00:00.000 .0 .0
2004-04-09 01:00:00.000 .5 .5
2004-04-09 02:00:00.000 1.0 1.5
2004-04-09 03:00:00.000 .5 2.0
2004-04-09 04:00:00.000 1.5 3.5

(所影响的行数为 6 行)

--*/
zjcxc 2004-04-09
  • 打赏
  • 举报
回复
--改一下:

select YMDHM,DTRN,D=(
select sum(DTRN) from a
where YMDHM<=aa.YMDHM and datediff(day,YMDHM,aa.YMDHM)=0)
from a aa
zjcxc 2004-04-09
  • 打赏
  • 举报
回复
select YMDHM,DTRN,D=(
select sum(DTRN) from a
where YMDHM<=aa.YMDHM and datediff(day,YMDHM,a.YMDHM)=0)
from a aa
njtvwoshiisp 2004-04-09
  • 打赏
  • 举报
回复
学习哦学习哦!
intermedia 2004-04-09
  • 打赏
  • 举报
回复
zjcxc(: 邹建 :)

向你学习

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧