GARANTIR DESCONTO

Fórum Pesquisar em duas tabelas? #205957

12/01/2004

0

Olá pessoal!

Gostaria de criar um relatório de __/___/___ a __/__/__ que me fornecesse o estoque de entrada e de saída dos produtos. Para isso tenho a seguinte estrutura:

TblProdutos: CodProduto, Nome, ValorUnit, Quant;
TblVendas: N_Pedido, DataVenda, CodCliente, ValorTotal
TblProdSaida: N_pedido, codproduto, quantidade, valorunit, valorprod;
Entr_estoque: Data_Hora_Entrada, Cod_Produto, Quant, Caixa, ValorUnit.

As tabelas que tem as informações que quero são TblProdSaida e Entr_Estoque. Informo, ainda, que a TblProdVendas é vincula a TblVendas.

Será que alguém poderia me ajudar a fazer uma instrução sql que eu consiga obter esses resultados em um só relatório.

OBS: O banco de dados que uso é o Firebird 1.0 e acesso o mesmo através da paleta DbExpress.

Obrigado!


E_marcello

E_marcello

Responder

Posts

12/01/2004

Flavialr

Oi, tente assim:

´Select Pro.CodProduto, Pro.Nome, Pro.Quant, Count(Sai.quantidade) Saidas, Count(Ent.Quant) Entradas
From TblProdutos Pro, TblVendas Vend, TblProdSaida Sai, Entr_estoque Ent
Where Pro.CodProduto = :codproduto
and Vend.datavenda between :dataini and :datafim
and Pro.CodProduto = Sai.codproduto and pro.codproduto = Ent.cod_produto and Ent.Data_hora_entrada between :dataini and :datafim
Group by pro.codproduto, pro.nome´

Não sei se é bem assim que vc quer... se for só as entradas e saidas vai funcionar...

Tenha um bom dia! :)
Flavia


Responder

Gostei + 0

12/01/2004

Flavialr

Ah! desculpe... não use COUNT(QUANTIDADE) mas sim SUM(QUANTIDADE), OK?


Responder

Gostei + 0

13/01/2004

E_marcello

Agradeço a resposta, mas quando tento realizar a pesquisa não aparece nenhum dado.

OBS: retirei do código o pro.Quant, pois quando tentava realizar a pesquisa dava um erro de referência.

Será que alguém pode me ajudar?


Responder

Gostei + 0

14/01/2004

E_marcello

Será que alguem tem uma dica?


Responder

Gostei + 0

14/01/2004

Paulo_amorim

Olá
A faixa de data eh data DE QUE? de compra? de venda?Voce nao especificou bem...
essa query se refere à data de venda.

tambem nao sabia a que se referia ESTOQUE DE SAIDA, entao assumi como da tabela TblProdSaida...

a query soh trará produtos que tenham sido vendidos pelo menos uma vez...se vc quiser todos MESMO, troque o INNER JOIN por um LEFT OUTER JOIN (P.cod_produto *= S.cod_produto)...

creio que assim funciona
claro que nao ha nenhum agrupamento na query, isso vc pode fazre de acordo com o que lhe for conveniente

SELECT P.cod_produto, E.quant, S.quantidade
FROM TblProdutos P, TblVendas V, TblProdSaida S, Entr_estoque E

WHERE V.n_pedido = S.n_pedido
AND P.cod_produto = S.cod_produto
AND P.cod_produto = E.cod_produto

AND V.datavenda BETWEEN :Ini AND :Fim

[]´s


Responder

Gostei + 0

14/01/2004

Paulo_amorim

Olá
A faixa de data eh data DE QUE? de compra? de venda?Voce nao especificou bem...
essa query se refere à data de venda.

tambem nao sabia a que se referia ESTOQUE DE SAIDA, entao assumi como da tabela TblProdSaida...

a query soh trará produtos que tenham sido vendidos pelo menos uma vez...se vc quiser todos MESMO, troque o INNER JOIN por um LEFT OUTER JOIN (P.cod_produto *= S.cod_produto)...

creio que assim funciona
claro que nao ha nenhum agrupamento na query, isso vc pode fazre de acordo com o que lhe for conveniente

SELECT P.cod_produto, E.quant, S.quantidade
FROM TblProdutos P, TblVendas V, TblProdSaida S, Entr_estoque E

WHERE V.n_pedido = S.n_pedido
AND P.cod_produto = S.cod_produto
AND P.cod_produto = E.cod_produto

AND V.datavenda BETWEEN :Ini AND :Fim

[]´s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar