tanem 0 Denunciar post Postado Novembro 26, 2009 Galera, Estou com o seguinte problema com um simples controle de estoque. Tenho duas tabelas, 1 tabela chamada "tb_entrada" que armazena os materiais de entrada, e outra chamada "tb_saida" que armazena os dados de saida. Fiz um sql que consegue retornar a quantidade do material x na tabela entrada -(menos) a quantidade o material x na tabela de saida, logo tenho o total no estoque. A questão é, como faço para que se o material tiver registro somente na tabela de entrada, ele exibe o valor desta? uma vez que não tem na tabela de saida ele não consegue fazer a subtraçao.. Aguardo retorno segue o sql: SELECT entrada.cd_material, (SUM(qtde)-SUM(qtds)) diferenca from (select e.cd_material, SUM(e.quantidade) as qtde from tb_entrada e group by e.cd_material) entrada left join (select cd_material, SUM(quantidade) as qtds from tb_saida group by cd_material) saida on entrada.cd_material = saida.cd_material group by entrada.cd_material Compartilhar este post Link para o post Compartilhar em outros sites
Alexandre M Narciso 0 Denunciar post Postado Novembro 26, 2009 Não sei se é a melhor saída, mas é a única que me ocorre no momento: SELECT e.cd_material, SUM( e.quantidade ) - CASE WHEN ISNULL( ( SELECT SUM( s.quantidade ) FROM tb_saida s WHERE s.cd_material = e.cd_material ) ) THEN 0 ELSE ( SELECT SUM( s.quantidade ) FROM tb_saida s WHERE s.cd_material = e.cd_material ) END as estoque FROM tb_entrada AS e GROUP BY e.cd_material Compartilhar este post Link para o post Compartilhar em outros sites
tanem 0 Denunciar post Postado Novembro 26, 2009 Alexandre, Testei rapidamente aqui, ainda não implementei no sistema, resultado do teste ... Show de bola funcionou filé demais, valeu mesmo cara. Compartilhar este post Link para o post Compartilhar em outros sites