Jump to content
Fórum Script Brasil
  • 0

Soma de valores entre 2 tabelas no MySql


Question

Boa noite!
Estou criando um projeto para armazenamento de dados de uma fazenda para  a faculdade com o mysql, queria fazer uma consulta com a soma do valor total em estoque de 2 tabelas, uma com insumos e outra com produtos que tem em estoque na fazenda, só que estou em duvida sobre essa consulta, alguém pode me ajudar, segue o codigo da criação das 2 tabelas 

CREATE TABLE `insumo_compra` (
    `id` INT(11) NULL DEFAULT NULL AUTO_INCREMENT,
    `nome` VARCHAR(50) NULL DEFAULT NULL,
    `quantidade` VARCHAR(10) NULL DEFAULT NULL,
    `data_compra` date NULL DEFAULT NULL,
    `preço` DECIMAL(6, 2) NULL DEFAULT NULL,
    PRIMARY KEY(`id`)
) ENGINE = InnoDB;

CREATE TABLE `produtos`(
    `id` INT(11) NULL DEFAULT NULL AUTO_INCREMENT,
    `nome` VARCHAR(50) NULL DEFAULT NULL,
    `tipo` VARCHAR(15) NULL DEFAULT NULL,
    `data_produção` DATE NULL DEFAULT NULL,
    `preço` DECIMAL(6, 2) NULL DEFAULT NULL,
    `estoque` VARCHAR(200) NULL DEFAULT NULL,
    PRIMARY KEY(`id`)
) ENGINE = InnoDB;


Alguém pode me ajudar?

Não preciso que seja exibido grupos, apenas a soma de todos os valores

Edited by Luan Felipe Leite da Silva
Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Bom dia. Estas tabelas se relacionam? Se sim. Com quais campos?
O campo nome é o campo comum entre as tabelas? Por exemplo. Tabela Produto  Nome=X

Na tabela insumos teria nome=X, tipo=x, data_produção=xxxx-xx-xx, preço=0.00, estoque=xxxx

O campo estoque é numérico? Se sim não deveria ser do tipo numerico e não varchar?

Link to post
Share on other sites
  • 0

Boa noite, fiz uma alteração nas tabelas, criei uma tabela onde ficara o ID dos produtos e insumos, nele ira ficar o tipo e localização, já que pode haver relação nos 2 dessa forma não repito essa informação na tabela, o código ficou dessa forma

CREATE TABLE `loc_estoque`(
    `id` INT(3) NULL DEFAULT NULL AUTO_INCREMENT,
    `tipo` VARCHAR(50) NULL DEFAULT NULL,
    `Localizacao` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY(id)
) ENGINE = InnoDB;

CREATE TABLE `produtos`(
    `nome_produtos` VARCHAR(50) NULL DEFAULT NULL,
    `data_produção` DATE NULL DEFAULT NULL,
    `preço` DECIMAL(6, 2) NULL DEFAULT NULL,
    `estoque_quant` VARCHAR(200) NULL DEFAULT NULL,
    `loc_estoque_id` INT NOT NULL,
    FOREIGN KEY(loc_estoque_id) REFERENCES loc_estoque(id)
) ENGINE = InnoDB; 

CREATE TABLE `insumo_compra`(
    `nome_insumo` VARCHAR(50) NULL DEFAULT NULL,
    `quantidade` VARCHAR(10) NULL DEFAULT NULL,
    `data_compra` DATE NULL DEFAULT NULL,
    `preço` DECIMAL(6, 2) NULL DEFAULT NULL,
    `loc_estoque_id` INT NOT NULL,
    FOREIGN KEY(loc_estoque_id) REFERENCES loc_estoque(id)
) ENGINE = InnoDB


Queria fazer a soma do preço das 2 tabelas produtos e insumo_compra, fiz de tudo já e não achei uma forma de fazer isso não sei se estou fazendo algo de errado na criação da tabela

A baixo segue o codigo do cadastro dos respectivo dados das tabelas para poder entender melhor, a informação de preço de inicio iria colocar preco_produtos e preco_insumo, mas não sei se para essa tabela seria o ideal

INSERT INTO `loc_estoque`(`id`, `tipo`, `Localizacao`)
VALUES(NULL, 'grão', 'armazém para venda'),
(NULL, 'laticinio', 'armazém para venda'),
(NULL, 'laticinio', 'armazém para venda'),
(NULL, 'Sal', 'estoque'),
(NULL, 'Fareniceo', 'estoque'),
(NULL, 'grão', 'estoque');


INSERT INTO `produtos` (`nome`, `data_produção`, `preço`, `estoque_quant`, `loc_estoque_id`) VALUES
('Milho', '2020-09-25', '1000.00', '100kg', '1'),
('Leite', '2020-10-20', '1345.05', '3400L', '2'),
('Queijo Minas', '2020-10-21', '1010.00', '1500kg', '3')

INSERT INTO `insumo_compra` (`nome`, `quantidade`, `data_compra`, `preço`, `loc_estoque_id`) VALUES 
('Sal Mineralizado Especial Para Alimentação Animal', '5kg', '2020-10-20', '54.90', '4'),
('Farelo Torta De Soja', '5kg', '2020-10-20', '19.95', '5'),
('Milho De Planta Híbrido Robusto Ano Todo', '5kg', '2020-10-20', '88.00', '6')

confesso nessa parte estou bem confuso de tanto que já fiz para tentar fazer essa consulta 

Link to post
Share on other sites
  • 0

Consegui resolver o problema, eliminei uma das tabelas que eu criei nessa conforme a ultima mensagem, ficou conforme abaixo 
 

CREATE TABLE `loc_estoque`(
    `id` INT(3) NULL DEFAULT NULL AUTO_INCREMENT,
    `tipo` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY(id)
) ENGINE = InnoDB;

INSERT INTO `loc_estoque`(`id`, `tipo`)
VALUES(NULL, 'produtos'),
(NULL, 'produtos'),
(NULL, 'produtos'),
(NULL, 'insumo'),
(NULL, 'insumo'),
(NULL, 'insumo');


--Nessa tabela será armazenado os dados dos produtos e estoque utilizando os dados da tabela anterior que ira armazenar se é produto e ou insumo

CREATE TABLE `estoque`(
    `nome` VARCHAR(50) NULL DEFAULT NULL,
    `data_prod_comp` DATE NULL DEFAULT NULL,
    `valor` DECIMAL(6, 2) NULL DEFAULT NULL,
    `estoque_quant` VARCHAR(200) NULL DEFAULT NULL,
    `loc_estoque_id` INT NOT NULL,
    FOREIGN KEY(loc_estoque_id) REFERENCES loc_estoque(id)
) ENGINE = InnoDB; 

INSERT INTO `estoque`(`nome`, `data_prod_comp`, `valor`, `estoque_quant`, `loc_estoque_id`)
VALUES('Milho', '2020-09-25', '1000.00', '100kg', '1'),
('Leite', '2020-10-20', '1345.05', '3400L', '2'),
('Queijo Minas', '2020-10-21', '1010.00', '1500kg', '3'),
('Sal Mineralizado Especial Para Alimentação Animal', '2020-10-20', '54.90', '5kg', '4'),
('Farelo Torta De Soja', '2020-10-20', '19.95', '5kg', '5'),
('Milho De Planta Híbrido Robusto Ano Todo', '2020-10-20', '88.00', '5kg', '6');


Eu queria somar o valor dos 2 mas eu já tinha feito um codigo que calcula o valor de tudo na tabela quando estava tudo separado, dessa forma criei outro codigo para calcular separando entre estoque e produtos

SELECT
    tipo,
    AVG(valor) AS "Media"
FROM
    estoque
INNER JOIN loc_estoque ON loc_estoque.id = estoque.loc_estoque_id
GROUP BY
    tipo
 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148907
    • Total Posts
      645002
×
×
  • Create New...