Ayuda en query

30/07/2008 - 23:37 por Ignacio Holguin | Informe spam
hola.
Tengo un script de busqueda que involucra dias y horas. El problema es
que no me muestra todos los registros que son en realidad.
Detallo: Necesito saber las ventas que hubo en, digamos, martes desde
las 3:00 PM hasta el miercoles hasta las 2:59 pm.
El quey que tengo tiene la siguiente clausula WHERE:
where
a.sucursal_id = @iIdSucursal
and year(a.fecha_movimiento) = @iFechaAnio
and (isnull(@iFechaMes, 0) = 0 or month(a.fecha_movimiento)= @iFechaMes)
and (day(a.fecha_movimiento) = (@iDiaMes - 1) and datepart(hour,
a.fecha_movimiento) > @iHoraDia)
and (day(a.fecha_movimiento) = (@iDiaMes) and datepart(hour,
a.fecha_movimiento) <= @iHoraDia)

Alguien sabe como resolverlo? Gracias anticipadas.

Preguntas similare

Leer las respuestas

#1 Ricardo Junquera
31/07/2008 - 11:59 | Informe spam
Hola

Que te parece cambiar
el where usando DATEDIFF ( datepart , startdate , enddate ) para ver los
registros con diferencia de ¿24 horas?

where
a.sucursal_id = @iIdSucursal and
DATEDIFF ( hour,a.fecha_movimiento, @tuFecha)<$

Ricardo Junquera
Consultor Business Intelligence

BG&S Online Consultores
Ganadora del Premio Microsoft Business Awards 2008.
Partner de Soluciones : Satisfacción de Cliente.



"Ignacio Holguin" wrote:

hola.
Tengo un script de busqueda que involucra dias y horas. El problema es
que no me muestra todos los registros que son en realidad.
Detallo: Necesito saber las ventas que hubo en, digamos, martes desde
las 3:00 PM hasta el miercoles hasta las 2:59 pm.
El quey que tengo tiene la siguiente clausula WHERE:
where
a.sucursal_id = @iIdSucursal
and year(a.fecha_movimiento) = @iFechaAnio
and (isnull(@iFechaMes, 0) = 0 or month(a.fecha_movimiento)= @iFechaMes)
and (day(a.fecha_movimiento) = (@iDiaMes - 1) and datepart(hour,
a.fecha_movimiento) > @iHoraDia)
and (day(a.fecha_movimiento) = (@iDiaMes) and datepart(hour,
a.fecha_movimiento) <= @iHoraDia)

Alguien sabe como resolverlo? Gracias anticipadas.





Respuesta Responder a este mensaje
#2 Maxi Accotto
01/08/2008 - 03:27 | Informe spam
Hola, yo no recomendaria eso, esa query no cumple con SARG y de existir un
indice no lo usaria de forma eficiente

a.sucursal_id = @iIdSucursal and
fecha_movimiento >= '20080301 13:00:00'
and fecha_movimiento <= '20080302 13:00:00'

donde las fechas podrian venir por un parametro tranquilamente



Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Ricardo Junquera" escribió en
el mensaje de noticias:
Hola

Que te parece cambiar
el where usando DATEDIFF ( datepart , startdate , enddate ) para ver los
registros con diferencia de ¿24 horas?

where
a.sucursal_id = @iIdSucursal and
DATEDIFF ( hour,a.fecha_movimiento, @tuFecha)<$

Ricardo Junquera
Consultor Business Intelligence

BG&S Online Consultores
Ganadora del Premio Microsoft Business Awards 2008.
Partner de Soluciones : Satisfacción de Cliente.



"Ignacio Holguin" wrote:

hola.
Tengo un script de busqueda que involucra dias y horas. El problema
es
que no me muestra todos los registros que son en realidad.
Detallo: Necesito saber las ventas que hubo en, digamos, martes desde
las 3:00 PM hasta el miercoles hasta las 2:59 pm.
El quey que tengo tiene la siguiente clausula WHERE:
where
a.sucursal_id = @iIdSucursal
and year(a.fecha_movimiento) = @iFechaAnio
and (isnull(@iFechaMes, 0) = 0 or month(a.fecha_movimiento)=
@iFechaMes)
and (day(a.fecha_movimiento) = (@iDiaMes - 1) and datepart(hour,
a.fecha_movimiento) > @iHoraDia)
and (day(a.fecha_movimiento) = (@iDiaMes) and datepart(hour,
a.fecha_movimiento) <= @iHoraDia)

Alguien sabe como resolverlo? Gracias anticipadas.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida