Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/01/2007, 11:40
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Consulta SQL complicada

Cita:
Iniciado por refciao Ver Mensaje
Resulta que estoy haciendo una aplicación web en asp, con visual c# y bases de datos sql server 2000. En mi aplicacion hay 4 cajas de texto, supongamos provincia, nombre, empleados, facturacion, el usuario puede escribir datos en 1 sola caja, en 2, en 3 o en las 4, para realizar una busqueda de empresas, dependiendo de el/los dato/s que conozca. Pues bien yo quiero que el sistema me realice una busqueda, pero no lo consigo ya que no se lo que poner en el Where. Si pongo por ejemplo WHERE Nombre=@Nombre AND .... , se me fastidia porque si en una caja no hay valor la consulta ya no devuelve nada, si pongo WHERE Nombre=@Nombre OR ...., tampoco me sirve porque me duelve filas que cumplen uno o otro requisito, y tienen que cumplir los dos. Alguna idea para solucionarlo????.
Mmmhhh bueno, salvo lo que te dijeron, si te entendí bien, tu problema es generar una consulta dinámica dependiendo de los valores de tu aplicación que puede ser 1, 2, 3, 4 o ninguno cierto?

Esto más que SQL es como manejes la creación de tu consulta dentro de tu aplicación, regularmente lo que se hace, es basado en tus valores y valiéndote de un contador creas esa consulta...la lógica más o menos es la siguiente:

Código:
//C#
int argCount = 0;
StringBuilder query = new StringBuilder();
query.Append("SELECT campos FROM tabla ");

if ( valor1.length > 0 )
{
   if ( argCount > 0 )
     query.Append(" AND ");
   else
     query.Append(" WHERE ");

   query.Append(" campo1 = @valor1 ");
   argCount++;
}
Y así sucesivamente para cada valor.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway