Это немного странно из-за способа, которым MySQL ссылается на подзапросы, но это будет делать то, что вам нужно, я думаю:
/*
create table t_test_1 (
symbol varchar(20) not null,
todayDate datetime not null,
interest int not null,
chng int null
)
*/
insert into t_test_1 (symbol, todayDate, interest, chng) values ( 'A202015', '2010-10-09', 90, null);
insert into t_test_1 (symbol, todayDate, interest, chng) values ( 'A202015', '2010-10-10', 80, null);
insert into t_test_1 (symbol, todayDate, interest, chng) values ( 'A202015', '2010-10-11', 120, null);
update t_test_1 as t1
set chng = t1.interest - (select interest from (
select *
from t_test_1 as t11
) as x
where x.symbol = t1.symbol and x.todayDate < t1.todayDate
order by x.todayDate desc
limit 1
);
select * from t_test_1;
это приводит к:
A202015 2010-10-09 90 NULL
A202015 2010-10-10 80 -10
A202015 2010-10-11 120 40
оЯ должен добавить, что это против сервера базы данных MySQL 5.x.я не уверен, что он будет работать против 4.x, так как у меня нет сервера 4.x для тестирования, извините.
-don