Atualizado em 14 de Fevereiro de 2014

Somar ou Subtrair Valor no Update do SQL

Olá pessoal,

Neste post vou falar de uma situação muito comum quando estamos desenvolvendo sistema de estoque. Imagine a seguinte situação: Você esta desenvolvendo um sistema de venda de produtos onde ao ser vendido um produto o sistema tem que dar automaticamente baixa no estoque.

Diante desta situação muito programadores (inclusive eu há alguns anos atrás) iria fazer o seguinte procedimento para resolver a questão: Fazer um Select para obter a quantidade atual, faria a adição ou subtração dos valores e por último faria um Update para atualizar a quantidade do produto, porém existe uma forma mais rápida e correta de se fazer este procedimento.

Para você entender melhor criamos uma tabela com o nome de produtos no qual ela contém um campo chamado quantidade que guarda a quantidade de produtos que existe no estoque e iremos fazer a atualização do Produto chamado Tênis de Futebol.

Vamos ver o SQL para Subtrair um Valor do campo da quantidade:

UPDATE produtos SET quantidade = quantidade-1 WHERE nome_produto = 'Tênis de Futebol'

Agora, vamos ver o SQL para Somar um Valor no mesmo campo:

UPDATE produtos SET quantidade = quantidade+1 WHERE nome_produto = 'Tênis de Futebol'

Apesar destes exemplos estarem dentro de um contexto, ele pode ser usado em qualquer momento que precisarmos realizar algum calculo dentro do SQL e sem falar que é extremamente fácil de usar.


Curta a nossa página



E isso aí pessoal, até a próxima.

Tags:  Banco de dados | PHP | SQL

Comentários

Sua foto do perfil

Julio Cesar

27 de Janeiro de 2016 - 02:29

Sua foto do perfil

Mauricio Programador

Obrigado amigo. Abraço.

03 de Fevereiro de 2016 - 14:26

Sua foto do perfil

Ernesto Cuambe

Ai Cara Beleza o teu post Ajudou me muito memo cara, estou desenvolvendo um Sistema de gestao mas tinha mesmo esse impasse. Abracos Mauricio

07 de Novembro de 2015 - 13:13

Sua foto do perfil

Fillipe Lucas

23 de Setembro de 2015 - 13:03

Sua foto do perfil

Mauricio Programador

Olá Fillipe,

Para testar o seu SQL para ver se ele esta retornando os dados certo primeiro teste eles em separado, com isso deve achar o erro em algum dos SQL secundários.

Abraço.

28 de Setembro de 2015 - 09:32

Sua foto do perfil

Ricardo

10 de Junho de 2015 - 20:42

Sua foto do perfil

Mauricio Programador

Olá Ricardo,

Não entendi muito bem a sua implementação, pois como ele vai atualizar o estoque de um produtos se ele não existe?

Reveja isso.

Abraço.

14 de Junho de 2015 - 23:57

Sua foto do perfil

Thiago

29 de Maio de 2015 - 09:15

Sua foto do perfil

Mauricio Programador

Olá Thiago,

Pode ser feito sem problemas também.

Abraço.

01 de Junho de 2015 - 09:17

Sua foto do perfil

Wellington

20 de Abril de 2015 - 01:55

Sua foto do perfil

Adelor da Silva

18 de Fevereiro de 2014 - 07:56

Sua foto do perfil

Mauricio Programador

Olá Adelor,

Legal sua pergunta. Independentemente de quantos produtos tenha a "Cozinha" você terá que fazer um UPDATE para cada um destes produtos, pois provavelmente eles estejam em registros separados na sua tabela de Matérias Primas.

Mas se a sua estrutura de tabelas estiver bem organizada dizendo que a cozinha tem 1 mesa, 4 cadeiras você poderá fazer um Laço de repetição para ele fazer o UPDATE em todas as Matérias Primas automaticamente.

Espero ter esclarecido sua dúvida.

Abraço

18 de Fevereiro de 2014 - 09:19

Sua foto do perfil

Adelor da Silva

Como seria esse laço de repetição?

18 de Fevereiro de 2014 - 09:36

Sua foto do perfil

Mauricio Programador

Não sei como esta as suas Tabelas mais seria mais ou menos assim:

$resultado = mysql_query('SELECT * FROM materia_prima WHERE produtoID = "AQUI VEM O ID DO PRODUTO"');

while($dados = mysql_fetch_array($resultado))
{
UPDATE materia_prima SET quantidade = quantidade-QUANTIDADE-QUE-VAI-SER-RETIRADA WHERE idmateriaprima= '$dados['ID DO PRODUTOS DA MATERIA PRIMA']'
}

Daí e so colocar os campos nos lugares certinho.

18 de Fevereiro de 2014 - 09:37

Sua foto do perfil

Adelor da Silva

Desculpa minha ignorância, mas como o sistema saberá se o produtoID já não foi atualizado?

18 de Fevereiro de 2014 - 14:08

Sua foto do perfil

Mauricio Programador

Não tem porque pedir desculpa.

Na verdade ai depende de como seu sistema esta implementado, geralmente ele faz esta atualização depois de uma ação, exemplo uma venda, então sempre que ele fizer a venda você realiza a baixa do estoque.

18 de Fevereiro de 2014 - 14:08

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER