TRAZER SOMENTE OS REGISTROS COM A DATA MAIS ATUAL POSSIVEL!

SQL Server

Microsoft

18/12/2020

OLÁ PESSOAL BOM DIA, ESTOU COM O SEGUINTE PROBLEMA TENHO UMA BASE SQL SERVER 2008 QUE POSSUI OS PREÇOS DOS PRODUTOS EM UMA TABELA SEPARADA E ESTOU QUERENDO QUE NA CONSULTA ELE ME TRAGA SOMENTE OS PREÇOS DOS PRODUTOS COM A DATA MAIS ATUAL PARA QUE EU POSSA EXPORTAR PARA A BASE DO MEU SISTEMA.

ESTOU USANDO ESSA CONSULTA:

SELECT isn_produto,prevl_preco,predt_inicio_validade FROM AZUL.dbo.t_preco ORDER BY isn_produto,predt_inicio_validade DESC

RETORNOU ISSO:
isn_produto, prevl_preco, predt_inicio_validade
1 7 2020-11-27 00:00:00.0000000
1 6,15 2020-11-27 00:00:00.0000000
1 1,4 2020-11-26 00:00:00.0000000
1 1,23 2020-11-26 00:00:00.0000000
1 6,9 2020-01-07 00:00:00.0000000
1 1,05 2019-07-04 00:00:00.0000000
1 4,35 2016-02-26 00:00:00.0000000
1 5,21 2015-06-13 00:00:00.0000000
1 5,25 2015-06-11 00:00:00.0000000
2 10,75 2016-03-15 00:00:00.0000000
2 0,83 2015-06-20 00:00:00.0000000
2 0,83 2015-06-13 00:00:00.0000000
2 0,83 2015-06-11 00:00:00.0000000
3 2,7 2018-06-13 00:00:00.0000000
3 2,33 2018-01-19 00:00:00.0000000
3 1,77 2016-02-26 00:00:00.0000000
3 2,42 2015-06-13 00:00:00.0000000
3 2,7 2015-06-12 00:00:00.0000000
4 9,16 2016-02-26 00:00:00.0000000
4 10,38 2015-06-13 00:00:00.0000000

COMO FAÇO PARA VIR SOMENTE UM PREÇO OU SEJA O MAIS ATUAL PELA DATA?
Daniel

Daniel

Curtidas 0

Respostas

Jair N.

Jair N.

18/12/2020

Boa Tarde, faça uma seleção de sub consulta para ter os dados de produtos mais atuais pela data.
Exemplo:
SELECT tab.isn_produto
, tab.prevl_preco
, tab.predt_inicio_validade
FROM AZUL.dbo.t_preco tab
-- Veja aqui...
INNER JOIN (SELECT sub.isn_produto
, MAX(sub.predt_inicio_validade) AS predt_inicio_validade
FROM AZUL.dbo.t_preco sub
GROUP BY sub.isn_produto
) sub
ON (sub.isn_produto = tab.isn_produto)
AND (sub.predt_inicio_validade = tab.predt_inicio_validade)
-- os produtos mais atualizados...
ORDER BY tab.isn_produto



GOSTEI 0
Daniel

Daniel

18/12/2020

Boa Tarde, faça uma seleção de sub consulta para ter os dados de produtos mais atuais pela data.
Exemplo:
SELECT tab.isn_produto
, tab.prevl_preco
, tab.predt_inicio_validade
FROM AZUL.dbo.t_preco tab
-- Veja aqui...
INNER JOIN (SELECT sub.isn_produto
, MAX(sub.predt_inicio_validade) AS predt_inicio_validade
FROM AZUL.dbo.t_preco sub
GROUP BY sub.isn_produto
) sub
ON (sub.isn_produto = tab.isn_produto)
AND (sub.predt_inicio_validade = tab.predt_inicio_validade)
-- os produtos mais atualizados...
ORDER BY tab.isn_produto





FUNCIONOU PERFEITAMENTE AQUI!
AMIGO MUITO OBRIGADO AJUDOU D+ MESMO, VOCÊ É O CARA!
GOSTEI 0
POSTAR