|
|
#1 (permalink) |
![]() Fecha de Ingreso: diciembre-2006
Ubicación: España
Mensajes: 57
|
Consulta SQL complicada
|
|
|
|
|
|
#2 (permalink) |
|
Colaborador
![]() Fecha de Ingreso: diciembre-2004
Mensajes: 1.149
|
Re: Consulta SQL complicada
Si cuando el usuario no teclea nada, mandas una cadena vacia, puedes filtrarlo con...
Código:
select * from mitabla Where nombre = Case when @Nombre = '' Then Nombre Else @Nombre End Si cuando el usuario no teclea nada, mandas un nulo, puedes filtrarlo con...
Código:
select * from mitabla Where nombre = isnull(@Nombre,Nombre) la misma operacion para los otros tres campos...agregandolos con un AND un saludo!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura... |
|
|
|
|
|
#3 (permalink) |
|
Moderador
![]() ![]() ![]() ![]() Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.476
|
Re: Consulta SQL complicada
Cita:
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?
Iniciado por refciao
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????.
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:
Y así sucesivamente para cada valor.//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++;
}
Saludos
__________________
¿Qué darías por vivir un sueño? |
|
|
|