| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
rogerioclaro2 Experiente

Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Qua Mai 16, 2018 11:27 am Assunto: Update[RESOLVIDO] |
|
|
Pessoal, bom dia.
preciso realizar um update com a seguinte logica:
| Código: |
UPDATE
Tabela
SET
Tabela.Col01 = Outra_tabela.Col01,
Tabela.Col02 = Outra_tabela.Col02
FROM
Tabela as Tabela
INNER JOIN Outra_tabela AS Outra_tabela
ON Tabela.id = Outra_tabela.id
WHERE
Condicao = 'Qualquer coisa'
|
porém ele da erro, alguem tem alguma ideia de como posso fazer isso?
Editado pela última vez por rogerioclaro2 em Seg Mai 28, 2018 9:35 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mai 16, 2018 2:53 pm Assunto: |
|
|
Boa tarde,
Se você estiver utilizando o Firebird acho que a alternativa vai ser utilizar subquerys, sendo necessário utilizar uma para cada campo a ser atualizado. Ex:
| Código: | UPDATE Tabela as t
SET
t.Col01 = (select o.Col01 from Outra_tabela as o where o.id = t.id)
t.Col02 = (select o.Col02 from Outra_tabela as o where o.id = t.id)
WHERE
t.Condicao = 'Qualquer coisa' |
Espero que ajude
Editado pela última vez por imex em Dom Out 01, 2023 5:37 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
rogerioclaro2 Experiente

Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Ter Mai 22, 2018 10:39 am Assunto: |
|
|
| imex escreveu: | Boa tarde,
Se você estiver utilizando o Firebird acho que a alternativa vai ser utilizar subquerys, sendo necessário utilizar uma para cada campo a ser atualizado. Ex:
| Código: | UPDATE Tabela as t
SET
t.Col01 = (select o.Col01 from Outra_tabela as o where o.id = t.id)
t.Col02 = (select o.Col02 from Outra_tabela as o where o.id = t.id)
WHERE
t.Condicao = 'Qualquer coisa' |
Espero que ajude
|
olá imex, desculpa pela demora, fiz o teste mas esta retornando essa mensagem:
multiple rows in singleton select. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Mai 22, 2018 11:22 am Assunto: |
|
|
Esse erro deve estar ocorrendo porque a subquery está retornando mais de um registro, então se for possível você poderia adicionar mais filtros nas subquerys para que elas retornem somente um registro, ou se isso não for possível experimente adicionar o First nas subquerys:
| Código: | UPDATE Tabela as t
SET
t.Col01 = (select first 1 o.Col01 from Outra_tabela as o where o.id = t.id)
t.Col02 = (select frist 1 o.Col02 from Outra_tabela as o where o.id = t.id)
WHERE
t.Condicao = 'Qualquer coisa' |
Espero que ajude |
|
| Voltar ao Topo |
|
 |
|