Usuário com melhor resposta
Max(data),valor

Pergunta
-
E ae pessoal, estou tentando fazer uma query que retorne o valor da maior data de cada ativo
Select max(Data_Hora_Reg), Id_Ativo, Valor
from vw_Precos Where Id_Ativo in(
818,
228,
243,
323,
536,
595,
717,
767,
794,
797)
group by Id_Ativomas nao ta funcionando nem a pau.
Respostas
-
veja este exemplo
Create Table #Exemplo (data datetime, valor int, id int)insert into #Exemplo (data, valor, id) Values ('2006-01-01',10,1)
insert into #Exemplo (data, valor, id) Values ('2006-01-02',12,1)
insert into #Exemplo (data, valor, id) Values ('2006-01-05',10,2)
insert into #Exemplo (data, valor, id) Values ('2006-01-04',10,3)
insert into #Exemplo (data, valor, id) Values ('2006-01-05',15,3)select #exemplo.* From #Exemplo
inner join ( select id, max(data) as mx_data
From #Exemplo group by id ) mxDrv on Mxdrv.mx_data = #Exemplo.data and mxDrv.id = #Exemplo.IdAbs;
Todas as Respostas
-
-
-
-
-
veja a coluna valor ela pode estar trazendo mais linhas, veja se nao e necessario agrupar com um max(), min(), etc. caso vc. so queria trafazer a linha com a maior data vc. deve agrupar um subselcct e colocar ela no join, qualquer coisa retorne;
Abs;
-
-
veja este exemplo
Create Table #Exemplo (data datetime, valor int, id int)insert into #Exemplo (data, valor, id) Values ('2006-01-01',10,1)
insert into #Exemplo (data, valor, id) Values ('2006-01-02',12,1)
insert into #Exemplo (data, valor, id) Values ('2006-01-05',10,2)
insert into #Exemplo (data, valor, id) Values ('2006-01-04',10,3)
insert into #Exemplo (data, valor, id) Values ('2006-01-05',15,3)select #exemplo.* From #Exemplo
inner join ( select id, max(data) as mx_data
From #Exemplo group by id ) mxDrv on Mxdrv.mx_data = #Exemplo.data and mxDrv.id = #Exemplo.IdAbs;