Update in a table with values from another

2

How to update the values of a table, using values taken from another table:

UPDATE produto -- atualizar a tabela produto 
   SET produto.quant = SUM(entrada.quant) --  produto.quant será igual a soma da coluna quant da tabela entrada
 WHERE produto.id = entrada.idproduto -- onde produto.id = entrada.idproduto

Product table:

id int
descricao string
tipo string
quant int

Input table

id int
idProduto int
data date
quant int
    
asked by anonymous 16.03.2017 / 14:51

1 answer

3

You can set the value of quant of the product, based on another query, observe how would it look:

UPDATE produto
   SET produto.quant =
       (SELECT SUM(entrada.quant)
          FROM entrada
         WHERE produto.id = entrada.idproduto)

I've done an example in SQLFinddle if you'd like to check out.

I made a change, I could not simulate the problem reported in the comments, so I made a change:
UPDATE produto
   SET produto.quant =
       (SELECT SUM(IFNULL(entrada.quant,0))
          FROM entrada
         WHERE produto.id = entrada.idproduto);

Example with the structure of your tables in SQLFinddle .

    
16.03.2017 / 15:02