Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
grsoft Aprendiz

Registrado: Segunda-Feira, 10 de Abril de 2006 Mensagens: 107
|
Enviada: Qua Mai 27, 2020 9:52 am Assunto: update resultado soma da mesma tabela MYSQL |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mai 27, 2020 11:53 am Assunto: |
|
|
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 |
|
 |
grsoft Aprendiz

Registrado: Segunda-Feira, 10 de Abril de 2006 Mensagens: 107
|
Enviada: Qua Mai 27, 2020 12:08 pm Assunto: |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mai 27, 2020 3:06 pm Assunto: |
|
|
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 |
|
 |
|