Estoy haciendo una consulta sencilla sobre una única tabla empleando un
procedimiento almacenado.
Solo intervienen tres parámetros: @IDProveedor (código de proveedor),
@FechaDesde y @FechaHasta. En la tabla tengo el código del proveedor y
un campo llamado FechaEntrada.
El problema es que se pueden hacer tres tipos de consultas:
- indicando solo el código del proveedor.
- indicando solo fecha desde y fecha hasta
- indicando código de proveedor y las fechas desde y fecha hasta.
En la cabecera del procedimiento almacenado declaro los parámetros así:
@IDProveedor smallint = NULL,
@FechaDesde smallDateTime = NULL,
@FechaHasta smallDateTime = NULL
Me pararece un poco fuerte hacer un if dentro del procedimiento con
cuatro ramas: tres para los casos que comentaba antes y otro para el
caso error (es decir, que vengan todos los parámetros con NULL).
El Where de la select del tercer caso la estoy haciendo así:
Where IDProveedor = @IDProveedor and
FechaEntrada >= @FechaDesde and
FechaEntrada <= @FechaHasta
¿Tengo un modo mejor de solucionarlo que haciendo el if con las cuatro
ramas? Muchas gracias.
Leer las respuestas