› Fóruns › SQL e PL/SQL › Selecionar um valor de uma máxima data.
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 6 meses atrás por
Leonardo Litz.
-
AutorPosts
-
18 de novembro de 2008 às 2:09 pm #83814
Anônimo
Tenho 2 tabelas…
PRODUTOS
CODIGO NOME
0001 PRO 1
0002 PRO 2
0003 PRO 3LANCAMENTOS
CODIGO DATA VALOR TIPO
0001 01/01/08 4,95 E
0001 13/03/08 9,85 E
0001 27/04/08 8,95 E
0001 27/04/08 7,95 E
0001 27/04/08 6,95 E
0001 01/05/08 3,95 E
0002 01/01/08 4,95 E
0002 13/03/08 6,55 E
0002 13/03/08 5,66 E
0002 01/05/08 3,95 E
0003 23/06/08 1,95 EPreciso trazer o último valor da última data…
O resultado esperado para uma consulta da data 30/04/2008 seria:
0001 PRO1 27/04/08 8,95 E
0002 PRO2 13/03/08 6,66 E
0003 PRO3 – – –Usei:
select codigo,data,valor from lancamentos LANPRO where data IN (select max(data) from lancamentos LANDATA where landata.data<'30/04/08' and landata.codigo=lanpro.codigo) order by codigo Funciona... o problema é que tendo lancamentos com datas repetidas ele traz o seguinte: 0001 PRO1 27/04/08 8,95 E 0001 PRO1 27/04/08 7,95 E 0001 PRO1 27/04/08 6,95 E 0002 PRO2 13/03/08 6,66 E 0002 PRO2 13/03/08 5,66 E 0003 PRO3 - - - E não posso ter registros repetidos. Alguem tem alguma sugestão?
18 de novembro de 2008 às 2:21 pm #83816Leonardo Litz
ParticipanteCara vc necessita que seja trazido os valores tb ou somente a data?
Se não for necessário deixe apenas a coluna da data e de um distinct.
18 de novembro de 2008 às 3:09 pm #83819Anônimo
Olá Litz,
Preciso dos valores também.
0001 PRO1 27/04/08 8,95 E
0002 PRO2 13/03/08 6,66 E
0003 PRO3 – – –18 de novembro de 2008 às 3:16 pm #83821Leonardo Litz
ParticipanteSe vc usar a regra vc o maior valor com maior data que te interressa então é assim
select codigo, max(data), max(valor)
from lancamentos LANPRO
where data IN (select max(data)
from lancamentos LANDATA
where landata.data < '30/04/08'
and landata.codigo = lanpro.codigo)
group by codigo
order by codigoou
select codigo, max(data), max(valor)
from lancamentos LANPRO
where data < '30/04/08'
group by codigo
order by codigoBlz?
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Selecionar um valor de uma máxima data.