Seguinte pessoal, estou tentando fazer uma query (UPDATE) para debitar creditos em XX (valor) de uma empresa identificada por script_id + cnpj (da certidão).
Ou seja, o valor virá dinamicamente e a identificação da empresa também.
Quando executo aparece o seguinte erro:
[Err] 1093 - You can't specify target table 'empresa' for update in FROM clause
Já pesquisei, tentei otimizar esse código, mas não vi outra forma de realizar essa consulta.
update empresa
set saldo = saldo - (
select preço
from preco_servico
where id = (select emp2.idEscritorio from empresa as emp2 where razao_social = (select emp3.associacao from empresa as emp3 where idEscritorio = (
select certidao_contratada.empresa_idEscritorio as idEscritorio
from certidao_contratada
inner join certidao_processada on certidao_contratada.cnpj_idCnpj = certidao_processada.certidao_contratada_cnpj_idCnpj
where certidao_processada.certidao_contratada_scripts_idScript = 68 #script_id
and certidao_processada.certidao_contratada_cnpj_idCnpj = '34.997.015/0001-98' #cnpj (da certidão)
order by certidao_processada.dataHoraConcluido desc
limit 1)))
and tipo_servico like 'b%'
)
where idEscritorio = (
select certidao_contratada.empresa_idEscritorio as idEscritorio
from certidao_contratada
inner join certidao_processada on certidao_contratada.cnpj_idCnpj = certidao_processada.certidao_contratada_cnpj_idCnpj
where certidao_processada.certidao_contratada_scripts_idScript = 68 #script_id
and certidao_processada.certidao_contratada_cnpj_idCnpj = '34.997.015/0001-98' #cnpj (da certidão)
order by certidao_processada.dataHoraConcluido desc
limit 1
);
Pergunta
MuRd0C
Seguinte pessoal, estou tentando fazer uma query (UPDATE) para debitar creditos em XX (valor) de uma empresa identificada por script_id + cnpj (da certidão).
Ou seja, o valor virá dinamicamente e a identificação da empresa também.
Quando executo aparece o seguinte erro:
[Err] 1093 - You can't specify target table 'empresa' for update in FROM clause
Já pesquisei, tentei otimizar esse código, mas não vi outra forma de realizar essa consulta.
update empresa set saldo = saldo - ( select preço from preco_servico where id = (select emp2.idEscritorio from empresa as emp2 where razao_social = (select emp3.associacao from empresa as emp3 where idEscritorio = ( select certidao_contratada.empresa_idEscritorio as idEscritorio from certidao_contratada inner join certidao_processada on certidao_contratada.cnpj_idCnpj = certidao_processada.certidao_contratada_cnpj_idCnpj where certidao_processada.certidao_contratada_scripts_idScript = 68 #script_id and certidao_processada.certidao_contratada_cnpj_idCnpj = '34.997.015/0001-98' #cnpj (da certidão) order by certidao_processada.dataHoraConcluido desc limit 1))) and tipo_servico like 'b%' ) where idEscritorio = ( select certidao_contratada.empresa_idEscritorio as idEscritorio from certidao_contratada inner join certidao_processada on certidao_contratada.cnpj_idCnpj = certidao_processada.certidao_contratada_cnpj_idCnpj where certidao_processada.certidao_contratada_scripts_idScript = 68 #script_id and certidao_processada.certidao_contratada_cnpj_idCnpj = '34.997.015/0001-98' #cnpj (da certidão) order by certidao_processada.dataHoraConcluido desc limit 1 );Grato pela ajuda!
Editado por MuRd0CLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados