Stack Overflow em Português Asked by mateus silva on January 2, 2021
Preciso fazer o update
de uma tabela somando dois valores (dinheiro + depositado), assim obtendo o total. Esse total eu já tenho utilizando o código
Select SUM(dinheiro)+(depositado) total from usuarios WHERE id=1
Porém eu queria colocar o valor acima na tabela e eu não to conseguindo assim:
UPDATE usuarios SET total=(Select SUM(dinheiro)+(depositado) total from usuarios WHERE id=1)
Assim?
UPDATE usuarios SET total = dinheiro + depositado WHERE id = 1
Coloquei no GitHub para referência futura.
Entenda as colunas como variáveis. Não tem que fazer nada maluco para obter seus valores. Basta pegar a variável que naquela linha terá o valor da coluna, nada além disto. Não tente usar coisas sem conhecer. Vai no simples. O que isto está fazendo é pegar o valor de duas colunas, somando, e armazenando em outra coluna. Simples assim. neste caso será feito apenas no usuário que tenha o id
igual a 1. Se tirar esse where
será feito em todos os usuários, cada usuário terá sua própria soma isolada das demais. Se sabe programar imperativamente em linguagem de programação é como se fosse um for
. Quando coloca o where
é como se tivesse um if
dentro desse for
. Se o banco de dados foi modelado adequadamente será muito rápido porque ele tem otimização. Se não souber modelar e tiver muitos dados será trágico.
O primeiro select
não faz o menor sentido, ele funciona por coincidência.
Será mais trágico funcionar bem e achar que é assim que se faz. O ideal é aprender os conceitos antes de fazer qualquer coisa. Ao contrário do que se prega por aí programação não é fácil.
Além disso saber e entender e comunicar o seu problema é algo que vem até antes da programação.
Correct answer by Maniero on January 2, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP