TransWikia.com

Como fazer update do banco de dados com SELECT Sum

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)

One Answer

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.

Fiat 147 todo detonado andando pelas ruas

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP