Comparar meses y años al mismo tiempo

20/05/2009 - 16:52 por RP | Informe spam
Hola que tal, bueno resulta que tengo a prueba una aplicación, y se me
presenta el siguiente problema, cuando necesito imprimir un rango de meses y
años no me sale el reporte tal y como lo deseo, mejor les explico con la
parte del código Where:

And ((month(c.fechliq) Between '01' And '12')

And (year(c.fechliq) Between '1997' And '2009'))

Esto era lo que originalmente use para imprimir el reporte entre el mes de
un año y el mes de otro año, pero cuando pongo algo como esto:

And ((month(c.fechliq) Between '01' And '05')

And (year(c.fechliq) Between '1997' And '2009'))

No me visualiza todos los datos, recortado sólo los del año '98 y del año
2009, pero si corre el primer where salen todos los datos.

Traducido al castellano, Como hago para que me corran los datos (Por
ejemplo) de enero de 1997 Hasta Mayo del 2009??

Agradezco de antemano la ayuda y sugerencias brindadas
 

Leer las respuestas

#1 Maxi
20/05/2009 - 17:18 | Informe spam
hola,
Primero la forma que lo esta haciendo no es eficiente porque esta utilizando
funciones del lado izquierdo, lo cual si tiene indices sobre esa columna no
seran usados de forma eficiente.

Para resolver su query es tan simple como

where c.fechliq >='19970101' and
c.fechliq < '20090601'

(incluido mayo)






Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com



"RP" escribió en el mensaje de
noticias:
Hola que tal, bueno resulta que tengo a prueba una aplicación, y se me
presenta el siguiente problema, cuando necesito imprimir un rango de meses
y
años no me sale el reporte tal y como lo deseo, mejor les explico con la
parte del código Where:

And ((month(c.fechliq) Between '01' And '12')

And (year(c.fechliq) Between '1997' And '2009'))

Esto era lo que originalmente use para imprimir el reporte entre el mes de
un año y el mes de otro año, pero cuando pongo algo como esto:

And ((month(c.fechliq) Between '01' And '05')

And (year(c.fechliq) Between '1997' And '2009'))

No me visualiza todos los datos, recortado sólo los del año '98 y del año
2009, pero si corre el primer where salen todos los datos.

Traducido al castellano, Como hago para que me corran los datos (Por
ejemplo) de enero de 1997 Hasta Mayo del 2009??

Agradezco de antemano la ayuda y sugerencias brindadas

Preguntas similares