Inquiridor
Select

Pergunta
-
Tenho uma tabela contendo a movimentação de vendas (itens da nota), e outra contendo produtos;
Preciso, pegar a ultima venda de cada produto e listar a quantidade q foi vendida, e o valor da venda.
Alguém pode me ajudar??? consegui fazer mas utilizando uma procedure, gravando dados em tabela temporária...com certeza há um jeito mais fácil
produto movimento
---------- ---------------
codprod (pk) nronota (pk)
descrição codprod (pk)
qtde
valor
Todas as Respostas
-
Bom dia Ric, você pode criar uma Function para fazer isto, dá uma olhada no exemplo:
Create Function FN_MovVendas() Returns @Movimentacao Table(CodProd int,Descrição varchar(100),nroNota int,qtde Decimal(18,4),Valor Decimal(18,4)) as
Begin
Declare @reg_ini int,
@reg_fim int,
@Produto int
Declare @tmp_Produto Table(Registro int identity(1,1),Codprod int)
Insert into @tmp_Produto
Select Distinct CodProd From Produto Order by CodProd
set @reg_ini =1
set @reg_fim = count(*) from @Tmp_Produto
While @reg_ini <= @reg_fim
begin
insert into @Movimentacao
Select Top 1 Produto.Codprod,Produto.Descrição,Nota.NroNota,Nota.qtde as Quantidade,Nota.Valor
From Produto
Inner Join Movimentacao as Nota On Nota.CodProd = Produto.CodProd and Nota.Codprod = @produto
Order by Nota.CodProd Desc
set @reg_ini = @reg_ini + 1
end
end
Return
Para utilizar basta fazer um Select: Select * from FN_MovVendas()
Espero ter ajudado
-
Ric,
Através do número da Nota Fiscal você poderia saber qual foi a última venda, pois obrigatóriamente o número da nota vai crescendo com o passar do tempo.
Desta forma, você poderá realizar um Select por produto, mas exibindo o maior de número de nota fiscal por cada produto, algo assim.
Select CodProd, Max(NroNota), Qtde From Movimento
Group by CodProd, Qtde
-
Olá Ricpestana,
Não sei se já resolveu seu problema.
Se não tiver resolvido ainda, teste este código:
SELECTSELECT
P.Descricao, M.Qtde, M.ValorFROM
Produto PINNER
JOIN ( SELECT CodProd, MAX (NRONota) NRONota FROM Movimento GROUP BY CodProd ) PM ON P.CodProd = PM.CodProdINNER
JOIN Movimento M ON PM.NRONota = M.NRONota AND PM.CodProd = M.CodProdSe tiver alguma dúvida, estamos aqui.
Abraço