如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
2013-03-20 10:11
183 查看
假设表tabFomula字段如下
BuyDate InOut Balance
其中BuyDate为主键,需要更新Balance=本记录的InOut+上一条记录的Balance
更新语句可以这样写
UPDATE A SET Balance = A.InOut + ISNULL((SELECT TOP 1 Balance FROM tabFomula B WHERE B.BuyDate<A.BuyDate ORDER BY B.BuyDate DESC ), 0)
FROM tabFomula A
------------------------------------------------------------------------
BuyDate InOut Balance
2010-07-01 00:00:00.000 100.00 100.00
2010-07-02 00:00:00.000 100.00 200.00
2010-07-03 00:00:00.000 100.00 300.00
2010-07-04 00:00:00.000 100.00 400.00
2010-07-05 00:00:00.000 -100.00 300.00
2010-07-05 10:00:00.000 -100.00 200.00
2010-07-06 00:00:00.000 -100.00 200.00
2010-07-07 00:00:00.000 100.00 300.00
2010-07-08 00:00:00.000 100.00 400.00
2010-07-09 00:00:00.000 100.00 500.00
2010-07-10 00:00:00.000 100.00 600.00
2010-07-11 00:00:00.000 100.00 700.00
BuyDate InOut Balance
其中BuyDate为主键,需要更新Balance=本记录的InOut+上一条记录的Balance
更新语句可以这样写
UPDATE A SET Balance = A.InOut + ISNULL((SELECT TOP 1 Balance FROM tabFomula B WHERE B.BuyDate<A.BuyDate ORDER BY B.BuyDate DESC ), 0)
FROM tabFomula A
------------------------------------------------------------------------
BuyDate InOut Balance
2010-07-01 00:00:00.000 100.00 100.00
2010-07-02 00:00:00.000 100.00 200.00
2010-07-03 00:00:00.000 100.00 300.00
2010-07-04 00:00:00.000 100.00 400.00
2010-07-05 00:00:00.000 -100.00 300.00
2010-07-05 10:00:00.000 -100.00 200.00
2010-07-06 00:00:00.000 -100.00 200.00
2010-07-07 00:00:00.000 100.00 300.00
2010-07-08 00:00:00.000 100.00 400.00
2010-07-09 00:00:00.000 100.00 500.00
2010-07-10 00:00:00.000 100.00 600.00
2010-07-11 00:00:00.000 100.00 700.00
相关文章推荐
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和
- 如何更新当前记录的某个字段等于本记录的某个字段+上一条记录的某字段之和 .
- [mysql] mysql如何实现更新一条记录中某个字段值的一部分呢?
- mysql如何更新一个表中的某个字段值等于另一个表的某个字段值
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- 在编写触发器事件时如何获得当前插入记录的字段值?(MS SQL Server)
- mysql如何更新一个表中的某个字段值等于另一个表的某个字段值
- 当有多条记录时,如何查询其中的一条的一个字段,并赋值给一个变量
- 转载:如何写个SQL语句查询一个字段里是否有重复记录如果有只读取其中一条记录
- 如何判断一条记录什么字段被修改了 [问题点数:40分,结帖人bluesukeke]
- 字段查找如何去掉数据库重复记录并且只保留一条记录
- asp中如何在ms sql server中更新或添加一条记录后立即得到其标识列的值
- asp中如何在ms sql server中更新或添加一条记录后立即得到其标识列的值
- mysql如何更新一个表中的某个字段值等于另一个表的某个字段值
- 如何优化SQL查询当前数据上一条和下一条的记录?
- 如何用一条SQL语句,将多条记录(一个字段)合并为一个?