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 resultado soma da mesma tabela MYSQL

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


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Qua Mai 27, 2020 9:52 am    Assunto: update resultado soma da mesma tabela MYSQL Responder com Citação

opa Pessoal, estou com uma dúvida nume SQL, seguinte:

eu quero fazer um update em um campo de uma tabela com o resultado de uma soma da mesma tabela, tentei da forma abaixo mas gerou um erro (You can't specify target table 't1' for update in FROM clause)

update tabela as t1
INNER JOIN tabela AS t2 ON t1.COD=t2.COD
set t1.VALOR = (select SUM(t2.VALOR*t2.QUANT) from tabela as t2 WHERE t1.COD=t2.COD)
WHERE t1.COD=6;

agradeço desde já a ajuda
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 Mai 27, 2020 11:53 am    Assunto: Responder com Citação

Bom dia,

Não tenho experiência com o MySQL mas desconfio que o Join não é necessário nesse comando que você postou:

Código:
update tabela as t1
set t1.VALOR = (select SUM(t2.VALOR*t2.QUANT) from tabela as t2 WHERE t1.COD=t2.COD)
WHERE t1.COD=6;


Espero que ajude


Editado pela última vez por imex em Qui Set 16, 2021 5:32 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grsoft
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Qua Mai 27, 2020 12:08 pm    Assunto: Responder com Citação

eu tb já tentei sem o join e apresentou o mesmo problema.

imex escreveu:
Bom dia,

Não tenho experiência com o MySQL mas desconfio que o Join não é necessário nesse comando que você postou:

Código:
update tabela as t1
set t1.VALOR = (select SUM(t2.VALOR*t2.QUANT) from tabela as t2 WHERE t1.COD=t2.COD)
WHERE t1.COD=6;


Espero que ajude
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 Mai 27, 2020 3:06 pm    Assunto: Responder com Citação

Experimente dessa forma para ver se funciona:

Código:
update tabela as t1
inner join
(
    select COD, SUM(VALOR * QUANT) as Soma from tabela group by COD
) as t2 ON t2.COD = t1.COD
set t1.VALOR = t2.Soma
WHERE t1.COD = 6


Espero que ajude
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