O SELECT
me mostra o valor da coluna restcota
do penúltimo registro e dependendo se esse valor for maior que zero, irei atualizar o ultimo registro. Estou usando esse SELECT
como clausula.
Este é o SELECT
que me mostra o valor da coluna do registro anterior, está executando certinho:
SELECT restcota FROM tbxerox x order by xerox desc limit 1,1;
E este é o UPDATE
, mas está emitindo erro :
Error Code: 1093. You can’t specify target table ‘x’ for update in FROM clause
UPDATE tbxerox x
INNER JOIN tbservidores s on s.cpfserv = x.cpf
set x.valor = (s.maxcot - s.total_xerox) * (-0.10)
where
(SELECT x.restcota
FROM tbxerox x
where x.cpf = x.cpf
order by x.xerox desc limit 1,1) > 0
and (x.restcota) < 0
and (s.maxcot - x.qtd_xerox) < 0
and (x.qtd_xerox) > 0
and (s.total_xerox) > 80
and x.xerox = ultimo_Xerox ()
and s.tiposerv = 'Professor';