El 26/07/2010 17:29, Fernando Siguenza escribió:
Gracias amigos por las respuestas creo que no me explique bien, lo que
deseo es hacer una busqueda de facturas por varios campos de la tabla,
pero no siempre se ingresan todos los campos por los que deseo buscar,
por ejemplo

SELECT * FROM facturas WHERE codigocliente LIKE '010%' AND
fecha='01/01/2010';

Esta consulta me funciona muy bien para cuando el usuario quiere buscar
por codigo y por fecha, pero que pasa si solo quiere buscar por codigo
de cliente, en la variable de fecha va a estar con valor null, como
haria en este caso, ya que son algunos campos y para el ejemplo solohe
puesto2.


Solucion 1.- Montas el sql dinamicamente en la aplicación agregando clausulas 'and' para los parametros no null.

Solucion 2.- Comprobar en cada clausula del where si el parametro es nulo. Observa que aqui cada parametro hay que incluirlo dos veces en el SQL:

select * from facturas
where
    case when PARAM_1 is null then true else codigocliente = PARAM_1 end
and
    case when PARAM_2 is null then true else fecha = PARAM_2 end
and
    ...

Saludos,
--
Oswaldo Hernández
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a