Ir para conteúdo
Fórum Script Brasil
  • 0

Soma de valores entre 2 tabelas no MySql


Luan Felipe Leite da Silva

Pergunta

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

Editado por Luan Felipe Leite da Silva
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...