Uso a Query abaixo para buscar apenas o ultimo valor por hora da tabela pois gravo 1 dado a cada 5 minutos no banco logo tenho 12 dados por hora mas o que me intereça é apenas o ultimo. Da mesma maneira se vou fazer uma consulta por dia pego a ultima hora do dia.
Porem essa Query só funciona os ULTIMOS 30 DIAS do banco, não consigo usar ela para ver meses anteriores ao não ser o mes atual ou melhor os ultimos 30 dias.
Alguem consegue me ajudar?
set dateformat ymd
SELECT ([E3TimeStamp])AS DataHora,[Energia_Por_Hora] AS MGE,[Irradiacao_Por_Hora] AS Irradiacao
FROM (
select *,
ROW_NUMBER() OVER(
PARTITION BY datepart(day,[E3TimeStamp]) ORDER BY Energia.E3TimeStamp DESC ) rn from [dbo].[Energia]
) [Energia]
WHERE rn=1 and ([E3TimeStamp] >= ‘2022-07-01 06:00:00’ AND [E3TimeStamp]<= ‘2022-07-31 23:00’) AND [Energia_Diaria]>0
ORDER BY [E3TimeStamp] ASC