Tengo un formulario, donde el usuario saca un informe. En el formulario, pueden elegir una fecha de inicio y una fecha de finalización, o pasar por un valor nulo para ambos valores. Si eligen nulo, devuelve todos los registros en los que no parece que la sentencia CASE EFFECTIVEDATE < GETDATE() para recibir el medio, ni tampoco lo hace como operadores '<'Usar BETWEEN en SQL CASE donde la cláusula
Aquí es mi guión
SELECT * FROM tbReport
WHERE
EffectiveDate
CASE
WHEN (@StartDate IS NOT NULL AND @EndDate IS NOT NULL)
THEN BETWEEN (@StartDate AND @EndDate)
ELSE
THEN < GETDATE()
END
Gracias, esta respuesta tiene más sentido para mí y tiene en cuenta todas las condiciones. – MeltdownZA
Funciona, pero ¿no es un poco complicado para lo que se requiere? No sería mi primera elección desde el punto de vista de la mantenibilidad. – SecretDeveloper