Array
(
)

sql e month

Arc
   - 05 ago 2005

tenho que fazer uma consulta da seguinte maneira

Tenho um campo data e um campo valor em uma tabela chamada historico.
Vou passar como parametro da consulta o mes e o ano.
Quero pegar a maior data e o valor deste historico sendo que esta data deva possuir mes e ano menor ou igual ao que foi passado como parametro.

Uso sql server 2000

Movido de Delphi para SQL Server

Rjun
   - 05 ago 2005

Acho que esse SQL resolve seu problema.

#Código

select top 1 * 
from 
  historico 
where 
  month(Data) <= @Mes and year(Data) <= @Ano
order by data desc


Arc
   - 05 ago 2005

neste caso se a maior data do historico for 30/12/2004
e eu passar como parametro mes 01 e ano 2005 ele não vai pegar esta data pois o mes vai ser maior do que o mes parametro

Rjun
   - 05 ago 2005

#Código

select top 1 * 
from 
  historico 
where 
  cast(year(data) as char(4)) + cast(month(data) as char(2)) <= 
  cast(@Ano as char(4)) + cast(@Mes as char(2))
order by data desc