ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Update com select[RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Qua Jan 25, 2017 3:30 pm    Assunto: Update com select[RESOLVIDO] Responder com Citação

Pessoal boa tarde!

Gostaria de uma ajuda de vocês.

Preciso realizar um update de um campo de uma tabela de acordo com o "select" e a condição web, porém fiz um processo, mas ele retorna erro
Código:

update item i set i.valor =
(select f.prccompra
from
produto f)
where
i.data >= '01.01.2016'


Código:

multiple rows in singleton select.
multiple rows in singleton select.


desde ja muito obrigado


Editado pela última vez por rogerioclaro2 em Qua Jan 25, 2017 4:04 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jan 25, 2017 3:43 pm    Assunto: Responder com Citação

Boa tarde,

Me parece que está faltando adicionar um filtro na subquery para que ela retorne somente o produto que está sendo atualizado no momento. Ex:

Código:
update item i
set i.valor = (select f.prccompra from produto f where f.idproduto = i.idproduto)
where
    i.data >= '01.01.2016'


Espero que ajude


Editado pela última vez por imex em Dom Out 01, 2023 4:06 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Jan 25, 2017 3:56 pm    Assunto: Responder com Citação

outra opção seria

Código:
UPDATE i
   SET i.valor = f.prccompra
  FROM item i
       JOIN produto f
         ON i.idproduto = f.idproduto
 WHERE i.data >= '01.01.2016'
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Qua Jan 25, 2017 4:02 pm    Assunto: Responder com Citação

imex escreveu:
Boa tarde,

Me parece que está faltando adicionar um filtro na subquery para que ela retorne somente o produto que está sendo atualizado no momento. Ex:

Código:
update item i
set i.valor = (select f.prccompra from produto f where f.idproduto = i.idproduto)
where
    i.data >= '01.01.2016'


Espero que ajude


Isso mesmo imex, obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Qua Jan 25, 2017 4:03 pm    Assunto: Responder com Citação

leo_cj escreveu:
outra opção seria

Código:
UPDATE i
   SET i.valor = f.prccompra
  FROM item i
       JOIN produto f
         ON i.idproduto = f.idproduto
 WHERE i.data >= '01.01.2016'


isso leo, obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB