relationship between SQL tables [closed]

0

I have the following problem, I have two stocks in my company, so I have two values for the stock, and the stock record looks something like this:

Astheimageshows,eachproducthastworecords,eachreportingthequantityofeachstock.Icannotchangethewaytheregistryisdoneinthedatabase,andIneedaninstructionthataddsboth,soit'snotthatdifficult,what'smakingmyhairfallisthatIneedthisvaluetobeinformedinthesametableasthecodebelow

SELECTnome_produtoASNome,Descricao_produtoAS'Marca/Laboratório',principio_ativoAS'Principioativo',produtos_precos.Custo_produtoASCusto,produtos_precos.Precovenda_produtoAS'Preçoavista',produtos_precos.precoprazo_produtoAS'Preçoaprazo',SUM(produtos_estoque.Estoque_produto)ASEstoqueFROMgenius.produtosLEFTJOINgenius.produtos_precosONprodutos_precos.id_produto=produtos.idLEFTJOINgenius.produtos_estoqueONprodutos_estoque.id_produto=produtos.idWHERE'nome_produto'LIKE'%ana%'ANDgenius.produtos_precos.id_empresa=3;

withoutthe"SUM (product_products.Product_Stock) AS Stock" part of it returns the following table:

ButwhenIaddthepartofthesumitreturnsmethis:

Thatis,itaddsupthestockofalltheproductsthathitthesearch,anddoesnotgivemethesumofeachproduct

Well,inshort,Ineedatableexactlylikethefirstimage,butwithacolumnofmore"stock" that adds up the two stocks of each product.

    
asked by anonymous 24.08.2016 / 07:47

1 answer

1

Roberto, in the current context of your question, I believe you have two rows with the same product and would like to add the stock contained in both, presenting the value in only one line per product.

So you can do the following:

SELECT /* Demais valores da sua consulta, onde todos que não serão agrupados (somados ou contados, por exemplo) 
           deverão aparecer na cláusula GROUP BY ao final da consulta*/ 
    nome_produto AS Nome, Descricao_produto AS 'Marca/Laboratório', 
    principio_ativo AS 'Principio ativo', 
    produtos_precos.Custo_produto AS Custo, 
    produtos_precos.Precovenda_produto AS 'Preço a vista', 
    produtos_precos.precoprazo_produto AS 'Preço a prazo',
    SUM(produtos_estoque.Estoque_produto) AS Estoque
FROM genius.produtos
LEFT JOIN genius.produtos_precos ON produtos_precos.id_produto = produtos.id
LEFT JOIN genius.produtos_estoque ON produtos_estoque.id_produto = produtos.id
WHERE 'nome_produto' LIKE '%ana%' 
AND genius.produtos_precos.id_empresa = 3;
--Cláusula agrupadora somará o estoque dos produtos dentro do contexto de agrupamento (campos indicados abaixo).
GROUP BY nome_produto, Descricao_produto, principio_ativo, 
         produtos_precos.Custo_produto, produtos_precos.precoprazo_produto;

I hope I have been able to help you.

    
24.08.2016 / 12:32