Trazer somente o ultimo produto comprado
03/05/2019
0
Olá,
Estou montando um comando e preciso que o sistema liste apenas a ultima compra feita para aquele devido produto, ou seja
somente o produto que tenha a data maior
exemplo quando o a.datalctofis for o maior para aquele devido produto.
Estou montando um comando e preciso que o sistema liste apenas a ultima compra feita para aquele devido produto, ou seja
somente o produto que tenha a data maior
exemplo quando o a.datalctofis for o maior para aquele devido produto.
select a.DATALCTOFIS as Data_Entrada, a.CODIGOPRODUTO as CodigoProduto_Saida, c.DESCRPRODUTO ,a.CODIGOCFOP,a.VALORUNITARIO, b.DATALCTOFIS as Data_Saida , b.CODIGOPRODUTO as CodigoProduto_Saida, b.CODIGOCFOP,b.VALORUNITARIO, (b.valorunitario-a.valorunitario)as custo ,case c.TIPOMEDICAMENTO WHEN 0 THEN ''''SIMILAR'''' when 1 Then ''''GENERICO'''' WHEN 2 THEN ''''REFERENCIA'''' END AS MEDICAMENTO , CASE C.CDANTITEM WHEN ''''OUTROS'''' THEN ''''OUTROS'''' end as MEDICAMENTO_OUTROS , CASE C.CODIGOGRUPOPRODUTO WHEN 14 THEN ''''BEBIDAS_ALCOOLICAS'''' WHEN 2 THEN ''''MERCADORIA'''' end AS SEGMENTACAO from LCTOFISENTPRODUTO a , LCTOFISsaiPRODUTO b , produto c where a.codigoempresa = 65 and a.datalctofis between ''''2018-01-01'''' and ''''2018-01-31'''' and a.codigoempresa=b.codigoempresa and a.codigoproduto = b.codigoproduto and a.codigoproduto=c.codigoproduto and a.codigoempresa=c.codigoempresa
Mayara Mattos
Curtir tópico
+ 0
Responder
Post mais votado
03/05/2019
Boa tarde,
Tente ordenar pela data com DESC (order by a.datalctofis desc) e depois pegue a primeira linha (select first 1).
Tente ordenar pela data com DESC (order by a.datalctofis desc) e depois pegue a primeira linha (select first 1).
Olá,
Estou montando um comando e preciso que o sistema liste apenas a ultima compra feita para aquele devido produto, ou seja
somente o produto que tenha a data maior
exemplo quando o a.datalctofis for o maior para aquele devido produto.
select a.DATALCTOFIS as Data_Entrada, a.CODIGOPRODUTO as CodigoProduto_Saida, c.DESCRPRODUTO ,a.CODIGOCFOP,a.VALORUNITARIO,
b.DATALCTOFIS as Data_Saida , b.CODIGOPRODUTO as CodigoProduto_Saida, b.CODIGOCFOP,b.VALORUNITARIO, (b.valorunitario-a.valorunitario)as custo
,case
c.TIPOMEDICAMENTO
WHEN 0 THEN ''''SIMILAR''''
when 1 Then ''''GENERICO''''
WHEN 2 THEN ''''REFERENCIA''''
END AS MEDICAMENTO ,
CASE C.CDANTITEM
WHEN ''''OUTROS'''' THEN ''''OUTROS'''' end as MEDICAMENTO_OUTROS ,
CASE C.CODIGOGRUPOPRODUTO
WHEN 14 THEN ''''BEBIDAS_ALCOOLICAS''''
WHEN 2 THEN ''''MERCADORIA''''
end AS SEGMENTACAO
from LCTOFISENTPRODUTO a , LCTOFISsaiPRODUTO b , produto c
where a.codigoempresa = 65 and a.datalctofis between ''''2018-01-01'''' and ''''2018-01-31''''
and a.codigoempresa=b.codigoempresa and a.codigoproduto = b.codigoproduto
and a.codigoproduto=c.codigoproduto and a.codigoempresa=c.codigoempresa
Estou montando um comando e preciso que o sistema liste apenas a ultima compra feita para aquele devido produto, ou seja
somente o produto que tenha a data maior
exemplo quando o a.datalctofis for o maior para aquele devido produto.
select a.DATALCTOFIS as Data_Entrada, a.CODIGOPRODUTO as CodigoProduto_Saida, c.DESCRPRODUTO ,a.CODIGOCFOP,a.VALORUNITARIO,
b.DATALCTOFIS as Data_Saida , b.CODIGOPRODUTO as CodigoProduto_Saida, b.CODIGOCFOP,b.VALORUNITARIO, (b.valorunitario-a.valorunitario)as custo
,case
c.TIPOMEDICAMENTO
WHEN 0 THEN ''''SIMILAR''''
when 1 Then ''''GENERICO''''
WHEN 2 THEN ''''REFERENCIA''''
END AS MEDICAMENTO ,
CASE C.CDANTITEM
WHEN ''''OUTROS'''' THEN ''''OUTROS'''' end as MEDICAMENTO_OUTROS ,
CASE C.CODIGOGRUPOPRODUTO
WHEN 14 THEN ''''BEBIDAS_ALCOOLICAS''''
WHEN 2 THEN ''''MERCADORIA''''
end AS SEGMENTACAO
from LCTOFISENTPRODUTO a , LCTOFISsaiPRODUTO b , produto c
where a.codigoempresa = 65 and a.datalctofis between ''''2018-01-01'''' and ''''2018-01-31''''
and a.codigoempresa=b.codigoempresa and a.codigoproduto = b.codigoproduto
and a.codigoproduto=c.codigoproduto and a.codigoempresa=c.codigoempresa
Bruno Guelere
Responder
Mais Posts
04/05/2019
Emerson Nascimento
Respondendo à tua pergunta, deve ser algo assim:
Mas é realmente disto que você precisa? O filtro de datas está na tabela correta?
select a.DATALCTOFIS as Data_Entrada, a.CODIGOPRODUTO as CodigoProduto_Saida, c.DESCRPRODUTO, a.CODIGOCFOP, a.VALORUNITARIO, b.DATALCTOFIS as Data_Saida, b.CODIGOPRODUTO as CodigoProduto_Saida, b.CODIGOCFOP, b.VALORUNITARIO, (b.valorunitario-a.valorunitario) as custo, case c.TIPOMEDICAMENTO WHEN 0 THEN 'SIMILAR' WHEN 1 THEN 'GENERICO' WHEN 2 THEN 'REFERENCIA' end AS MEDICAMENTO, case C.CDANTITEM WHEN 'OUTROS' THEN 'OUTROS' end as MEDICAMENTO_OUTROS, case C.CODIGOGRUPOPRODUTO WHEN 14 THEN 'BEBIDAS_ALCOOLICAS' WHEN 2 THEN 'MERCADORIA' end AS SEGMENTACAO from LCTOFISENTPRODUTO a inner join ( select codigoempresa, codigoproduto, max(a.DATALCTOFIS) ultcompra from LCTOFISENTPRODUTO group by codigoempresa, codigoproduto ) uc on uc.codigoempresa=a.codigoempresa and uc.codigoproduto=a.codigoproduto and uc.ultcompra=a.DATALCTOFIS inner join LCTOFISsaiPRODUTO b on b.codigoempresa=a.codigoempresa and b.codigoproduto=a.codigoproduto inner join produto c on c.codigoproduto=a.codigoproduto and c.codigoempresa=a.codigoempresa where a.codigoempresa = 65 and a.datalctofis between '2018-01-01' and '2018-01-31'
Mas é realmente disto que você precisa? O filtro de datas está na tabela correta?
Responder
Clique aqui para fazer login e interagir na Comunidade :)