Usuário com melhor resposta
Update Tabela 1 ( selecionando dado de outra tabela ) Tabela ( Entidades iguais)

Pergunta
-
Update e075pro
set codend =
(select codend from e210est where e0210est.codemp = e075pro.codemp and e0210est.codpro = e075pro.codpro and e075pro.codemp = 1 and e075pro.codpro = '0100100044')Estou atualizando campo "codend" entidade pertinente da tabela e075pro.coden pela tabela (2) e210est que também tem a mesma entidade "codend"
Apresenta erro sintax
Multi-part identifier "e210est.codemp" could not be Bound (Não pode ser vinculado)
Sendo e210est.codemp codigo empresa chave identico a E075pro.codemp
Importante utilizando SQL 2008 pela ferramenta DBexplorer
Estou errando onde ?
Respostas
-
Elias, na verdade acho que o erro é simples, o seu select abaixo tem que retornar somente 1 resultado por que senão o sql não vai saber o que atribuir para o campo da sua tabela, rode somente o seu select e veja se retorna mais de 1 linha se retornar ai esta o erro, deve retornar somente 1 registro para o sql aceitar o update.
select codend from e210est where e210est.codemp = e075pro.codemp and e210est.codpro = e075pro.codpro and e075pro.codemp = 1 and e075pro.codpro = '0100100044'
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Neto, Elias M S terça-feira, 30 de abril de 2013 20:04
Todas as Respostas
-
Olá,
Parece que te falta um zero:
Update e075pro set codend = (select codend from e0210est -- Faltava um zero aqui, no nome da tabela !
where e0210est.codemp = e075pro.codemp and e0210est.codpro = e075pro.codpro and e075pro.codemp = 1 and e075pro.codpro = '0100100044')
Espero ter ajudadio
Please use Mark as Answer if my post solved your problem and use Vote As Helpful if a post was useful.
Pedro Martins
Portugal
https://www.linkedin.com/in/rechousa -
na realidade os nomes das tabelas estavam erradas já ajustei nomes entretanto não entendo o porque do erro na expressão:
Update e075pro
set codend =
(select codend from e210est
where e210est.codemp = e075pro.codemp
and e210est.codpro = e075pro.codpro
and e075pro.codemp = 1
and e075pro.codpro = '0100100044')Sitax error: Subquery returned more than value this is not permitted when the subquery fallows = !=,<,<=, > = or when the subquery is used as an expression.
" um simples update " onde esta erro de comparações ? alguem tem outros olhos.
Agradeço
-
Elias, na verdade acho que o erro é simples, o seu select abaixo tem que retornar somente 1 resultado por que senão o sql não vai saber o que atribuir para o campo da sua tabela, rode somente o seu select e veja se retorna mais de 1 linha se retornar ai esta o erro, deve retornar somente 1 registro para o sql aceitar o update.
select codend from e210est where e210est.codemp = e075pro.codemp and e210est.codpro = e075pro.codpro and e075pro.codemp = 1 and e075pro.codpro = '0100100044'
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Neto, Elias M S terça-feira, 30 de abril de 2013 20:04
-
Achei erro pessoal:
Desculpa falha minha tem mais uma chave update fica assim:
Certo:
Alexandre Matayosi Conde Mauricio
update e075pro
set e075pro.codend = e210est.codend
from e075pro as e075pro
inner join e210est as e210est on e210est.codemp = e075pro.codemp
and e210est.codpro = e075pro.codpro
and e210est.coddep = '1' ------------------->>>> Estava faltando este teste, pois aqui posso ter mais de um codigo de deposito
and e075pro.codemp = 1
and e075pro.codpro = '01001000