Fórum Ultima venda de um determinado produto #60250

22/10/2008

0

Olá a todos!!!
Alguem poderia me ajudar na seguinte questao: Preciso determinar qdo e qto foi vendido um determinado produto.
Tentei a seguinte instrucao:
select produtos.descricao, itensvenda.idproduto, itensvenda.qtd, vendas.data
from vendas
inner join itensvenda on (vendas.nrvenda = itensvenda.nrvenda)
inner join produtos on (itensvenda.idproduto = produtos.idproduto)

Mas repetiu varias vezes o produto
[]´s
Evaristo


T3r3son

T3r3son

Responder

Posts

23/10/2008

Emerson Nascimento

de um único produto:
select
  prod.descricao, v.data,
  iv.idproduto, iv.qtd, iv.valorunitario
from
  produtos prod
inner join
  itensvenda iv on iv.idproduto = prod.idproduto
inner join
  vendas v on v.nrvenda = iv.nrvenda
where
  prod.idproduto = produtosolicitado and
  v.data = 
  (select max(v2.data)
   from itensvenda iv2
   inner join venda v2 on v2.nrvenda = iv2.nrvenda
   where iv2.idproduto = prod.idproduto)


de TODOS os produtos (tire a codição de avaliação do produto do where):
select
  prod.descricao, v.data,
  iv.idproduto, iv.qtd, iv.valorunitario
from
  produtos prod
inner join
  itensvenda iv on iv.idproduto = prod.idproduto
inner join
  vendas v on v.nrvenda = iv.nrvenda
where
  v.data = 
  (select max(v2.data)
   from itensvenda iv2
   inner join venda v2 on v2.nrvenda = iv2.nrvenda
   where iv2.idproduto = prod.idproduto)

espero que seja isso...


Responder

Gostei + 0

24/10/2008

T3r3son

Obrigado, Emerson!!!
Mas nessa ultima instrucao, é totalizado os produtos vendidos. Preciso que seja mostrado a ultima venda e qtde dos produtos bem como a compra. Lembro-lhe que, se o produto nao foi comprado deve sair na consulta. Ou seja, o importante nesse caso seria a venda do produto. Digamos que tenha uma certa qtde de um produto no estoque a 3 meses e vendo todos. Nesse caso eu preciso saber se esta vendendo ou nao. Pela data de compra eu saberia se esta ou nao girando o estoque ou foi uma simples coincidencia ter vendido o produto. Isso me serve para fazer uma reposicao do estoque com base nos produtos que vendem diariamente e nao que vendem uam vez ou outra
[]´s
Evaristo


Responder

Gostei + 0

24/10/2008

T3r3son

Ops!!!
Um erro de interpretacao minha: Não é totalizado o item, mas a data mostrada nao é a ultima data da venda do item.
[]´s
Evaristo


Responder

Gostei + 0

13/11/2008

T3r3son

Alguém se habilita?? Ou são a maioria como eu???
[]´s
Evaristo


Responder

Gostei + 0

20/11/2008

Emerson Nascimento

qual é o campo chave da tabela ´itensvenda´ ?


Responder

Gostei + 0

20/11/2008

Emerson Nascimento

tente assim...
para saber a última data de venda de cada produto:
select
  prod.idproduto, prod.descricao, max(v.data) ultima_venda
from
  produtos prod
inner join
  itensvenda iv on iv.idproduto = prod.idproduto
inner join
  vendas v on v.nrvenda = iv.nrvenda
group by
  prod.idproduto, prod.descricao

para saber qual foi o último item vendido e a última data de venda de cada produto:
select
  prod.idproduto, prod.descricao, v.data ultima_venda,
  iv.idproduto, iv.qtd, iv.valorunitario
from
  produtos prod
inner join
  itensvenda iv on iv.idproduto = prod.idproduto
inner join
  vendas v on v.nrvenda = iv.nrvenda
where
  iv.iditensvenda = -- supondo que ´iditensvenda´ seja
  (select top 1     -- o campo chave da tabela ´itensvenda´
     iv2.iditensvenda
   from
     itensvenda iv2
   inner join
     vendas v2 on v2.nrvenda = iv2.nrvenda
   where
     iv2.idproduto = iv.idproduto
   order by
     v2.data desc)

bom, creio que seja isso...
mas só vai funcionar em função do campo chave da tabela itensvenda


Responder

Gostei + 0

24/11/2008

T3r3son

IDVENDA,IDPRODUTO,ITEM - ItensVenda
IDVENDA - VENDAS
IDPRODUTO - PRODUTOS


Responder

Gostei + 0

20/03/2013

Elisangela Silva

Obrigadão
Emerson

Asimm como vc falou:
tente assim...
para saber a última data de venda de cada produto:
[code:1:8fdc1d6743]select
 prod.idproduto, prod.descricao, max(v.data) ultima_venda
from
 produtos prod
inner join
 itensvenda iv on iv.idproduto = prod.idproduto
inner join
 vendas v on v.nrvenda = iv.nrvenda
group by
 prod.idproduto, prod.descricao


Deu certinho
Obrigado
Responder

Gostei + 0

21/03/2013

T3r3son

Mas e o periodo que eu especificar vc vai incluir na instrução onde???
Responder

Gostei + 0

21/03/2013

Elisangela Silva

O período esta especificado nesta parte
max(v.data) ultima_venda


ele vai pegar a ultima venda do produto
Responder

Gostei + 0

22/03/2013

T3r3son

Vc nao entendeu: quero especificar o periodo em que vou mostrar a ultima venda de um produto. 01/01/2013 - 28/02/2013, confere???
Responder

Gostei + 0

22/03/2013

Elisangela Silva

Para especificar o período em que vou mostrar a ultima venda de um determinado produto ficaria assim:

Select P.ProdId,P.Nome,max(v.DT) ultima_venda
from  produto P
inner join  item_venda IV on IV.ProdId = P.ProdId
inner join  venda v on v.NFiscal = IV.NFiscal
where DT BETWEEN 2013-01-01 AND 2013-03-19
group by  P.ProdId,P.Nome



lembrando que esse comando é valido em mysql, no caso vc precisa adaptar
para o seu gerenciador de banco de dados...
Responder

Gostei + 0

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

Aceitar