Обновление запроса - как исправить сообщение об ошибке «Операция должна использовать обновляемый запрос» - PullRequest
0 голосов
/ 02 мая 2019

У меня следующий запрос ОБНОВЛЕНИЯ:

UPDATE cl INNER JOIN bb ON cl.r_si = bb.si

SET cl.s_si = (SELECT si FROM bb AS y
    WHERE y.si = bb.si+1
    AND 
    (y.p >=bb.p*(1+(bb.imax+y.dmax-((bb.imax-bb.dmax)-((bb.iminn+bb.dminn)-bb.rminn)))/100)
    OR
    y.p<=bb.p*(1+(bb.imin+y.dmin+((bb.imax-bb.dmax)-((bb.iminn+bb.dminn)-bb.rminn)))/100)))

WHERE (((cl.s_si) is null));

Возвращает сообщение «Операция должна использовать обновляемый запрос»

Это тот же запрос, который сформулирован как SELECT вместо ОБНОВЛЕНИЯ:

SELECT

(SELECT si FROM bb AS y
    WHERE y.si = bb.si+1
    AND (y.p>=bb.p*(1+(bb.imax+y.dmax-((bb.imax-bb.dmax)-((bb.iminn+bb.dminn)-bb.rminn)))/100)
    OR
    y.p<=bb.p*(1+(bb.imin+y.dmin+((bb.imax-bb.dmax)-((bb.iminn+bb.dminn)-bb.rminn)))/100))) AS s_si

FROM cl INNER JOIN bb ON cl.r_si = bb.si;

Запрос работает в формулировке SELECT. Что я должен изменить в запросе UPDATE, чтобы избежать этого сообщения об ошибке? Необходимо обновить таблицу cl, а не создавать новую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...