Ajuda com query mysql
Boa noite, preciso de ajuda pois não seu por onde começar:
Partindo dessas 3 tabelas:
Tabela 1:
CREATE TABLE `tbl_cat_estoque` (
`Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Atenção ao campo CHAR',
`Transacao` VARCHAR(100) NOT NULL,
`Descricao` TEXT NOT NULL,
PRIMARY KEY (`Cod`),
UNIQUE INDEX `Matricula` (`Transacao`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2
;
Tabela 2:
CREATE TABLE `tbl_estoque` (
`Cod` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`Dia` DATE NOT NULL,
`Filial` INT(10) UNSIGNED NOT NULL,
`Transacao` INT(10) UNSIGNED NOT NULL,
`Produto` INT(10) UNSIGNED NOT NULL,
`Cliente_Fornecedor` INT(10) UNSIGNED NOT NULL,
`Descricao` VARCHAR(100) NULL DEFAULT NULL,
`Quantidade` INT(11) NOT NULL,
`Validade` DATE NULL DEFAULT NULL,
`Efetivado` ENUM('S','N') NOT NULL,
`N_Controle` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`Cod`),
UNIQUE INDEX `N_Controle` (`N_Controle`),
INDEX `FK_Produto` (`Produto`),
INDEX `FK2_Trans_Estoque` (`Transacao`),
INDEX `FK_Contatos` (`Cliente_Fornecedor`),
INDEX `FK4_Filial` (`Filial`),
CONSTRAINT `FK2_Trans_Estoque` FOREIGN KEY (`Transacao`) REFERENCES `tbl_cat_estoque` (`Cod`),
CONSTRAINT `FK_Produto` FOREIGN KEY (`Produto`) REFERENCES `tbl_produtos` (`Cod`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=758
;
Tabela 3:
CREATE TABLE `tbl_produtos` (
`Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Produto` VARCHAR(250) NOT NULL,
`Preco_Custo` FLOAT(10,2) NOT NULL,
`Fornecedor` INT(10) UNSIGNED NOT NULL,
`Grupo` INT(10) UNSIGNED NOT NULL,
`Informacoes` TEXT NULL,
`Preco` DECIMAL(10,2) NOT NULL,
`Esgotado` ENUM('S','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`Cod`),
UNIQUE INDEX `Produto` (`Produto`),
INDEX `FK_fornecedor` (`Fornecedor`),
INDEX `FK2_Grupo` (`Grupo`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=163
;
Preciso de uma query que retorne todos os produtos cadastrados e suas respectivas quantidades em estoque. Sendo que o campo "Transacao' presente em tbl_estoque e quem diferencia uma entrada de uma saída de mercadorias. - Meus conhecimentos me levaram até aqui:
SELECT
tbl_estoque.Produto AS Cod_Produto,
tbl_produtos.Produto AS Produto,
tbl_cat_estoque.Transacao AS Transacao,
(case when (tbl_cat_estoque.Transacao like '1%') then sum(tbl_estoque.Quantidade) else 0 end) AS Entradas,
(case when (tbl_cat_estoque.Transacao LIKE '2%') then sum(tbl_estoque.Quantidade) else 0 end) AS Saidas
from tbl_estoque
join tbl_cat_estoque ON (tbl_estoque.Transacao = tbl_cat_estoque.Cod)
JOIN tbl_produtos ON (tbl_estoque.Produto = tbl_produtos.Cod)
group by tbl_estoque.Transacao;
Agradeço toda ajuda que receber.Discussão (7)
Carregando comentários...