Muy buenas a todos,
A partir de una consulta sobre una tabla, se listan una serie de
registros según un intervalo de fechas introducido por el usuario.
El campo que recibe los parámetros para el intervalo puede contener
valores nulos (NULL) y el intervalo puede no contener ninguna fecha si
el usuario quiere listar todos los registros.
Mi problema es el siguiente:
Para comprobar el intervalo, utilizo el código siguiente en la
claúsula WHERE:
(Fecha_Recogida BETWEEN ISNULL(@FechaInt01, Fecha_Recogida)
AND ISNULL(@FechaInt02, Fecha_Recogida) )
Esto sirve perfectamente cuando el usuario quiere un intervalo de
fechas, pero no sirve a la hora de listar todas las fechas, pues las
que contienen NULL no aparecen listadas.
¿Cómo se puede solucionar esto permitiendo valores NULL en el campo
fecha?
La comparación con ISNULL es necesaria porque el usuario puede optar
por no introducir valores de rango, pero en la comparación BETWEEN
nunca entrarían los valores NULL.
¿Tal vez usando algún condicional tipo CASE en el WHERE?
Gracias a todos.
Leer las respuestas