56,679
社区成员
发帖
与我相关
我的任务
分享
UPDATE 表, (
SELECT
id, sku, date,
cost1, cost2, cost3, num1, num2, num3,
@total_cost as start_total_cost,
@total_num as start_total_num,
@total_cost := @@total_cost - cost1 - cost2 + cost3 as end_total_cost,
@total_num := @total_num - num1 - num2 + num3 as end_total_num
FROM 表,
( SELECT @total_cost:=0, @total_num:=0 ) _x
ORDER BY date
)b
SET 表.start_total_cost = b.start_total_cost,
表.start_total_num = b.start_total_num,
表.end_total_cost = b.end_total_cost,
表.end_total_num = b.end_total_num
WHERE 表.id = b.id
update demo表 set total_cost=(select sum(cost) from(select * from demo表) b where b.mdate>demo表.mdate);
-- 假设 id 能唯一标识一条记录
update demo表, (
select id, @1 as total_cost1, @2 as total_cost2,
@1:=@1+total_cost1,
@2:=@2+total_cost12
from demo表, (select @1:=0, @2:=0) x
order by mdate
) b
set total_cost1= b.total_cost1, total_cost2=b.total_cost2
where demo表.id = b.id
update demo表 set total_cost=(select sum(cost) from(select * from demo表) b where b.mdate>demo表.mdate),
total_cost1=total_cos, total_cost2=total_cost, .....
UPDATE demo表
SET total_cost = (
SELECT SUM(cost)
FROM (
SELECT *
FROM demo表
) b
WHERE b.mdate > demo表.mdate);
--先执行上面的再执行下面的
UPDATE demo表 SET
total_cost1=total_cost,total_cost2=total_cost,total_num1=total_cost,total_num2=total_cost