Problema con query sencillo

05/09/2007 - 19:00 por Cacho | Informe spam
Muy buenas.
Antes que nada deseo agradecer la posibilidad de postear en el foro y la
atención que puedan dispensarme.
Tengo un problema con un query sencillo y la descripción es:
En SQL2005 tengo una tabla que consultar, esta tabla tiene vistas ya
armadas, organizadas mensualmente.

La consulta es sencillita:
SELECT campo1, campo2, ... FROM tabla
WHERE campoFecha BETWEEN fecha1 AND fecha2 AND campoInt = entero.

Tanto campoFecha como campoInt pertenecen a la Primary Key.
campoFecha es el primer campo de la Primary Key, campoInt está en el 4°
lugar, La Primary Key contiene cinco campos.

Problema:
El resultado de la consulta es erroneo, es decir que los registros que me
devuelve no son los que espero y no corresponden al criterio ingresado.

Al consultar el plan de ejecución, noto que el query usa una vista, pero
esta vista no pertenece al rango de fechas ingresado como criterio.
Si quito el campoInt del criterio, el query usa la tabla y no la vista por
lo que el resultado es correcto.

Perdon por la extension y desde ya, muchas gracias por leer.
 

Leer las respuestas

#1 Maxi
05/09/2007 - 20:29 | Informe spam
Cacho, a ver, usted esta haciendo un query a una tabla o una vista?
segundo, porque dice que los datos no son los del criterio? que deberia
retornar y que cosa no esta retornando? usted no tendra el problema en el
rango de fechas no? sabe usted que SQL almacena Fecha + hora y que por
ejemplo en su codigo si las puntas son

1/1/2007 a 1/10/2007 este ultimo solo consultara hasta las 00:00, si usted
desea inculir bien las fechas de deberia olvidar del betWeen y usar algo
como esto

WHERE FECHA >='20070101' AND FECHA < '20071002'

No comprendo lo ultimo, como que el query plan usa o no la vista dependiendo
del parametro? usted esta viendo correctamente? podria poner el query plan
en formato texto aqui para que lo analicemos?


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Cacho" escribió en el mensaje
news:
Muy buenas.
Antes que nada deseo agradecer la posibilidad de postear en el foro y la
atención que puedan dispensarme.
Tengo un problema con un query sencillo y la descripción es:
En SQL2005 tengo una tabla que consultar, esta tabla tiene vistas ya
armadas, organizadas mensualmente.

La consulta es sencillita:
SELECT campo1, campo2, ... FROM tabla
WHERE campoFecha BETWEEN fecha1 AND fecha2 AND campoInt = entero.

Tanto campoFecha como campoInt pertenecen a la Primary Key.
campoFecha es el primer campo de la Primary Key, campoInt está en el 4°
lugar, La Primary Key contiene cinco campos.

Problema:
El resultado de la consulta es erroneo, es decir que los registros que me
devuelve no son los que espero y no corresponden al criterio ingresado.

Al consultar el plan de ejecución, noto que el query usa una vista, pero
esta vista no pertenece al rango de fechas ingresado como criterio.
Si quito el campoInt del criterio, el query usa la tabla y no la vista por
lo que el resultado es correcto.

Perdon por la extension y desde ya, muchas gracias por leer.

Preguntas similares