Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 15-ene-2007, 18:15   #1 (permalink)
refciao no se puede cailificar en este momento
 
Fecha de Ingreso: diciembre-2006
Ubicación: España
Mensajes: 57
Consulta SQL complicada

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????.
refciao está desconectado   Responder Citando
Antiguo 16-ene-2007, 07:17   #2 (permalink)
Colaborador
Andres95 tiene algunos puntos positivos de karma
 
Avatar de Andres95
 
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...
Andres95 está desconectado   Responder Citando
Antiguo 16-ene-2007, 10:40   #3 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.476
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
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:56.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93