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
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)