Я хочу обновить новое состояние
Этот выбор работает:
select cd.referenceid, cd.productstate , cd.date, dateadd(day,-1,cd.date) as gestern, cd2.date as cd2date, cd2.productstate, cd.statenew
from public.contractdaily cd
left join public.contractdaily cd2 on cd2.contractid = cd.contractid and dateadd(day,-1,cd.date) = cd2.date
where cd.productstate != cd2.productstate and cd.referenceid = 201663
Это не работает
update contractdaily set stateNew = 1
from
(select cd.stateNew ,cd.referenceid, cd.productstate as cd1productstate , cd.date, dateadd(day,-1,cd.date) as gestern,
cd2.date as cd2date, cd2.productstate as cd2productstate, cd.referenceid as cdreferenceid
from contractdaily cd
left join contractdaily cd2 on cd2.contractid = cd.contractid and dateadd(day,-1,cd.date) = cd2.date )foo
where contractdaily.productstate != foo.cd2productstate and contractdaily.referenceid = 201663;
Ошибка: Amazon Недопустимая операция: целевая таблица должна быть частью предиката эквивалентного соединения; [Состояние SQL = XX000, код ошибки БД = 500310]
0
cst
23 Окт 2019 в 11:49
1 ответ
Может это поможет:
update contractdaily
set stateNew = 1
where referenceid = 201663
and productstate not in
(
select cd2.productstate
from contractdaily cd
left join contractdaily cd2 on cd2.contractid = cd.contractid and dateadd(day,-1,cd.date) = cd2.date
);
0
Neeraj Agarwal
27 Окт 2019 в 05:23
Похожие вопросы
Новые вопросы
sql-update
Оператор SQL UPDATE используется для изменения существующих строк в таблице.