SQL - Consultas

 
Vista:

Consultas

Publicado por Sir Arthur (3 intervenciones) el 05/01/2005 00:58:37
Hola a todos, tenog un problema, necesito hacer una consulta en SQL a una DB. La consulta es necesario que sea por apellido paterno, materno y nombre, pero el detalle esta en que el usuario deba poder hacer las consultas como el lo desee, ya sea que solo escriba el apllido paterno y filtra todos los del mismo apellido, o los apellidos, o solo el nombre, o todo (ose hacer cambinaciones de estos tres campos), llevo mucho quebrandome la cabeza, si alguien lo sabe se voy a agradecer mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consultas

Publicado por EnriqueK (69 intervenciones) el 05/01/2005 14:57:49
Hola, bueno entiendo tu problema yo lo hago con mas de 20 campos y es una verdadera joda, pero no problem :) lo puedes hacer construyendo tu consulta y despues ejecutarla, mas o menos asi...(una vaina cuando no tienes nada instalado en tu pc)

@ApePat, @OptApePat ... ---> son lo parametros que recibiria tu store ...
Declare @SQL varchar(200)

Set @SQL = 'Select campo1, campo2,... From TablaN Where '

SELECT @ApePat = case when @OptApePat = 0 then ' ApePat Like ' + @ApePat + '% AND' when @OptApePat = 1 then ' ApePat Like %' + @ApePat + ' AND' when @OptApePat = 2 then ' ApePat Like %' + @ApePat + '% AND' when @OptApePat = 3 then ' ApePat =' + @ApePat + '% AND' END

Bueno asi sucesivamente, despues de eso juntas las cadenas @SQL con el @Where y ejecutas.

EXEC @SQL + @WHERE

o
SET @SQL = @SQL + @WHERE
EXEC sp_executesql @SQL

En este caso es mejor utilizar el sp_executesql es mucho mas eficiente, espero me hayas entendido y suerte en tu consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consultas

Publicado por Liliana (426 intervenciones) el 05/01/2005 16:34:52
Hola,
Además de la respuesta de Enrique, te propongo hacer una prueba en paralelo con esta otra opción:

CREATE PROC consulta_variable (@paterno varchar(40), @materno varchar(40), @nombre varchar(40))
AS
SELECT paterno, materno, nombre, direccion, otrosdatos
FROM tabla
WHERE paterno LIKE ISNULL(@paterno + '%', '%') AND
materno LIKE ISNULL(@materno + '%', '%') AND
nombre LIKE ISNULL(@nombre + '%', '%')
GO

Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultas

Publicado por Isaías Islas (5072 intervenciones) el 05/01/2005 19:33:25
Esperaba esta propuesta tuya Liliana, estuve tentado a postearla, pero tiene "DERECHOS RESERVADOS" de tu autoria.

En lo personal, me quitaste de UN GRAN CODIGO de encima.

Saludos gauchita.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consultas

Publicado por Liliana (426 intervenciones) el 06/01/2005 11:19:40
¿Y si te digo que yo estaba esperando que no resistieras a la tentación?
Fuera de broma, hicimos un buen trabajo en conjunto que salvó a más de uno de la idea del suicidio!
Un abrazo amigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultas

Publicado por Sir Arthur (3 intervenciones) el 08/01/2005 19:24:42
Muchas Gracias Enrike y muchas gracias Liliana por la ayuda que me proporcionaron me ha servido de mucho y si hay algo en lo que pueda servirles estoy en contacto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar