Fórum Criar Consulta com 5 tabelas agrupado #59652

11/04/2008

0

Boa Tarde caros amigos;

estou com dificuldade para criar uma consulta,

tenhos esta situação:
NOME TABELA E CAMPOS

Tabelas:

PRODUTO: codrpdouto,descricao, estoque

NOTA_VENDA: datavenda, codvenda
ITENS_VENDA: codproduto, qtdvendida, codvenda(fk) chave estrangeira na nota

NOTA_COMRA: datacompra, codcompra
ITENSCOMPRA: codproduto, qtdcomprada, codcompra(fk)chave estrangeira na nota

proceiso formar uma consulta que me retorne

o total de produto comprados no periodo, total de produtos vendido no periodo e o estoque atual

vendas e compras realizadas => no periodo 01/01/2008 a 01/04/2008
nota compra
produto:
arroz =>
2 notas de compra
comprou 30 e na segunda 20 total: 50
3 notas de venda
vendeu 5 depois 5 depois 10 total: 20


relatório:

Periodo 01/01/2008 até 01/04/2008
produto qtd comprada qtd vendia estoque atual
01 Arroz 50 20 15


desde já agradeço


Hugofab

Hugofab

Responder

Posts

11/04/2008

Emerson Nascimento

tente isso:
select
  prod.CodProduto, prod.Descricao,

  (select sum(compra.qtdcomprada)
   from Itens_Compra itens
   inner join Nota_Compra nota on (nota.codcompra = itens.codcompra)
   where nota.datacompra between datainicial and datafinal
     and itens.codproduto = prod.codproduto) QtdComprada,

  (select sum(venda.qtdvendida)
   from Itens_Venda itens
   inner join Nota_Venda nota on (nota.codvenda = itens.codvenda)
   where nota.datavenda between datainicial and datafinal
     and itens.codproduto = prod.codproduto) QtdVendida,

  prod.Estoque EstoqueAtual
from
  Produto prod
[where ...]



Responder

Gostei + 0

11/04/2008

Hugofab

emerson.en,

fiz uma pequena modificação e consegui o resultado pretendido.

veja como ficou :

select
prod.CodProduto, prod.descprod,

(select sum(ITC.quantidade)
from itennfc ITC

inner join nf_entrada nota on (nota.cd_saida = itC.cd_saida)
where nota.dataentrada between :datainicial and :datafinal
and itC.codproduto = prod.codproduto) QtdComprada,

(select sum(ITV.quantidade)
from itens ITV
inner join nfvendas notaV on (notaV.cd_saida = ITV.cd_saida)
where notav.datamov between :datainicial and :datafinal
and ITV.codproduto = prod.codproduto) QtdVendida,

prod.Estoque EstoqueAtual
from
Produto prod
where (select sum(ITC.quantidade)
from itennfc ITC

inner join nf_entrada nota on (nota.cd_saida = itC.cd_saida)
where nota.dataentrada between :datainicial and :datafinal
and itC.codproduto = prod.codproduto) <> 0 or (select sum(ITV.quantidade)
from itens ITV
inner join nfvendas notaV on (notaV.cd_saida = ITV.cd_saida)
where notav.datamov between :datainicial and :datafinal
and ITV.codproduto = prod.codproduto) <> 0

muito obrigado pela ajuda


Responder

Gostei + 0

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

Aceitar