用表中的数据update该表中其他行的数据

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:18:23
有电费表,其中2列为其始度数(a)和终止度数(b),把本月的起始度数设置为上个月的终止度数.住户(c)为多列.
起始度数 终止度数 住户 月份
10 20 A 1
15 25 B 1
null null A 2
null null B 2
我想把2月用户A和B的起始读书设置为1月的终止度数

谢谢指点

假设表为Ele_table
列为
begin int
end int
username varchar(32)
month int
------------------------------------
declare @user varchar(32)--用户名
declare @mon int --指定要更新的月份,如2,表示更新2月
declare @opin int--存储该用户的上个月的终止度数
set @user='A'
set @mon=2
select @opin=end from Ele_table where username=@user and month=@mon-1 --通过条件获取上个月的终止度数
update Ele_table set begin=@opin where username=@user and month=@mon

存储过程做相应修改,传递用户名和更新月份做为参数即可完成

UPDATE 电费表
SET 起始度数= (CASE WHEN 起始度数 IS NULL THEN
(SELECT 终止度数 FROM 电费表 AS 电费表_1
WHERE (电费表.月份- 1 = 月份) AND (电费表.住户 = 住户) AND (终止度数IS NOT NULL))
ELSE 起始度数 END)

表结构发下