【发布时间】:2015-11-17 18:58:28
【问题描述】:
我有一张如下表:
id code value total
==========================
1 A/01 5
2 A/01 8
3 A/01 6
1 A/02 8
2 A/02 3
3 A/02 7
1 A/03 6
2 A/03 9
3 A/03 2
我想用同一行的值 + 上一行的值更新总计。我声明了一个变量如下并更新表格:
DECLARE @sum int
SET @sum = 0
UPDATE @table set total = @sum, @sum = @sum + value
如果我选择第一个代码,它就完美了:
SELECT * FROM table WHERE code='A/01'
id code value total
==========================
1 A/01 5 5
2 A/01 8 13
3 A/01 6 19
但如果我选择整个表格,那么它会这样做:
id code value total
==========================
1 A/01 5 5
2 A/01 8 13
3 A/01 6 19
1 A/02 8 27
2 A/02 3 30
3 A/02 7 37
1 A/03 6 43
2 A/03 9 52
3 A/03 2 54
如何按照我的说明更新表格,以便在“代码”列中的值更改时重置添加值?请帮忙,我需要以下结果,谢谢!
id code value total
==========================
1 A/01 5 5
2 A/01 8 13
3 A/01 6 19
1 A/02 8 8
2 A/02 3 11
3 A/02 7 18
1 A/03 6 6
2 A/03 9 15
3 A/03 2 17
【问题讨论】:
-
为什么要同时使用 MySQL 和 MS SQL Server 标签?您使用的是哪个 dbms? (不要标记未涉及的产品...)
-
对不起@jarlh 这是 sql server。我刚刚删除了 mysql 标签。
标签: sql sql-server tsql