elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  SQL - Ayuda con StoreProcedure(SELECT)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SQL - Ayuda con StoreProcedure(SELECT)  (Leído 6,181 veces)
AlonsoCN

Desconectado Desconectado

Mensajes: 49


Somos los arquitectos de nuestra propia felicidad.


Ver Perfil WWW
SQL - Ayuda con StoreProcedure(SELECT)
« en: 4 Noviembre 2009, 02:36 am »

Buenas a todos  :)

Mi duda es simple  ;D eso creooo! :laugh:
Bueno tengo un SP que es para buscar a un alumno por sus apellidos
pero el problema es que cuando busco al alumno.. solo busca con 1 solo apellido
(Apellido Paterno o Apellido Materno) pero si quiero buscar con los 2 apellidos... nada  :(

El Codigo que tengo hasta ahora es...
Código:
-- BUSQUEDA DE ESTUDIANTE POR APELLIDOS
CREATE PROCEDURE USP_S_BUSCARESTUDIANTEAPELLIDO
@EST_Apellido varchar(30)
AS
BEGIN TRANSACTION
SELECT
EST_Codigo AS Codigo ,
EST_Nombres AS Nombre ,
EST_ApellidoPaterno AS ApellidoPaterno ,
EST_ApellidoMaterno AS ApellidoMaterno ,
EST_CorreoElectronico AS CorreoElectronico
FROM Estudiante
WHERE EST_ApellidoPaterno = @EST_Apellido OR EST_ApellidoMaterno = @EST_Apellido
IF (@@error <> 0)
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
GO

Creo que el problema es en el WHERE... no lo sé

Gracias de antemano!
 :P



En línea

+=============+
| All you need is Love!  |
+=============+
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #1 en: 4 Noviembre 2009, 03:35 am »

Hola cielo  :D

Mira si te fijas bien en tu SP, solamente pasas 1 solo parametro:

Código
  1. CREATE PROCEDURE USP_S_BUSCARESTUDIANTEAPELLIDO
  2. @EST_Apellido                VARCHAR(30)
  3.  

Y le pasas ese unico parametro a las 2 condiciones del WHERE:

Código
  1.  
  2. WHERE EST_ApellidoPaterno = @EST_Apellido OR EST_ApellidoMaterno = @EST_Apellido
  3.  
  4.  

Por ende el WHERE esta buscando en base a 1 solo parametro que posee el mismo valor  :P  para buscar por los 2 apellidos debes declarar 2 parametros y no 1 solo, y pasarle cada parametro a cada campo, por ejemplo:

Código
  1. CREATE PROCEDURE USP_S_BUSCARESTUDIANTEAPELLIDO
  2. @EST_Apellido                VARCHAR(30), @DOS_Apellido VARCHAR(30)
  3.  

Por lo que:

Código
  1.  
  2. WHERE EST_ApellidoPaterno = @EST_Apellido OR EST_ApellidoMaterno = @DOS_Apellido
  3.  
  4.  

Ahi deberia buscarte por uno u el otro  ;)

PD: No se nada sobre T-SQL por ende puede que haya hecho mal la sintaxis al ejemplo de tu SP pero estoy segura que entenderas la propuesta que te hago.

Un besote  :-*


En línea

AlonsoCN

Desconectado Desconectado

Mensajes: 49


Somos los arquitectos de nuestra propia felicidad.


Ver Perfil WWW
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #2 en: 4 Noviembre 2009, 03:49 am »

Hellooooooooouuuu ^TiFa^ !  :D

TiFa la razón por la cual estoy trabajando con un solo parámetro es por que los Apellidos del estudiante se ingresan en un solo TextBox... no puedo usar 2 TextBox para buscar por apellido por que en ese mismo textBox donde ingreso los Apellidos, también ingreso codigo del alumno para buscarlo (si quiero buscar por Apellido o Código eso depende de un CheckBox) 

Espero que me hayas entendido ^TiFa^  :)

Saludos!   :D
En línea

+=============+
| All you need is Love!  |
+=============+
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #3 en: 4 Noviembre 2009, 04:09 am »

Si ese punto lo entiendo, pero en tu tabla tu tienes 2 campos de Apellidos distintos, uno del padre, otro de la madre.

Citar
EST_ApellidoPaterno        AS ApellidoPaterno               ,
EST_ApellidoMaterno        AS ApellidoMaterno   


Lo cual esta bien, debe ser asi. Ahora como solo puedes utilizar en el formulario 1 textbox, tienes que buscar la manera en tu codigo (de cual sea el lenguaje que uses) de hacer un SPLIT de los 2 apellidos ingresados en ese textbox y guardarlos en un Array, dicho Array sera de 2 apellidos los cuales igual puedes pasarselos a tu SP declarandoles 2 parametros 1 por cada Apellido. Porque no puedes buscar por los 2 apellidos sino utilizas las condiciones de dicha busquedad, tienes que solicitar los 2 apellidos o realizar la busquedad en base a 1 solo apellido.
En línea

AlonsoCN

Desconectado Desconectado

Mensajes: 49


Somos los arquitectos de nuestra propia felicidad.


Ver Perfil WWW
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #4 en: 4 Noviembre 2009, 06:25 am »

Eso de usar una array puede ser una solución... pero, encontré esta mejor! ;D

Ya arregle ese problema asi:

Código:
CREATE PROCEDURE USP_S_BUSCARESTUDIANTEAPELLIDO
@EST_Apellido varchar(30)
AS
BEGIN TRANSACTION
SELECT
EST_Codigo AS Codigo ,
EST_Nombres AS Nombre ,
EST_ApellidoPaterno AS ApellidoPaterno ,
EST_ApellidoMaterno AS ApellidoMaterno ,
EST_CorreoElectronico AS CorreoElectronico
FROM Estudiante
WHERE EST_ApellidoPaterno + ' ' + EST_ApellidoMaterno LIKE '%' + @EST_Apellido + '%'
IF (@@error <> 0)
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
GO

Gracias por tu ayuda ^TiFa^  :), siempre tu presente!  ;D  ¡GRACIAS!

Saludos!  ;)
En línea

+=============+
| All you need is Love!  |
+=============+
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #5 en: 4 Noviembre 2009, 20:49 pm »

No veo en que la clausula LIKE busque por los 2 apellidos  :huh:   :huh:
Que pasa si el apellido paterno es Lopez y el Materno es Ruiz y tu estas buscando en base a 1 solo Apellido en este caso Lopez asi:

%Lopez%

Eso es traeme todos los apellidos que tengan en su centro la palabra 'Lopez'...

So no te entiendo :P
En línea

AlonsoCN

Desconectado Desconectado

Mensajes: 49


Somos los arquitectos de nuestra propia felicidad.


Ver Perfil WWW
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #6 en: 4 Noviembre 2009, 22:56 pm »

jajajaja  :P yo tampoco te entiendo a que te refieres  :xD

pero TiFa cuando estoy buscando un apellido... digamos 'Calle Núñez'

Si busco con 'Calle' = CORRECTO (encuentra)
Si busco con 'Núñez' = CORRECTO
Si busco con 'Calle Núñez' = CORRECTO
Si busco con 'Calle Nunes' = INCORRECTO (no encuentra)
Si busco con 'Núñez Calle' = INCORRECTO
Si busco con 'Nu Ca' = INCORRECTO

Como podrás ver solo encuentra al alumno con esas 3 maneras de ingresarlos...
Eso quiere decir que funciona verdad?  :rolleyes:
En línea

+=============+
| All you need is Love!  |
+=============+
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #7 en: 5 Noviembre 2009, 13:58 pm »

Ahh pos mira que bien, cuando te referias a 1 Textbox asumi que te referias a que solo se insertaba 1 solo apellido y no los dos juntos....

Aunque literalmente usando LIKE %Lopez Ruiz%  funcione, yo habia asumido que era1 solo apellido %Lopez%  pero si tu textbox accepta los 2 campos, yo me inclinaria mas por el array, los 2 parametros y el

WHERE Apellido_Paterno = parametro1 OR Apellido_materno = parametro2 
La razon? optimizacion  ;) (solo si los 2 campos anteriores son indices) ya que la clausula LIKE filtra en todos los registros existentes y inexistente (NULL) de la tabla y si yo tengo 5 millones de registros.... ya tomas la idea.

Pero si prefieres mantenerte con el LIKE ni modo :P
En línea

AlonsoCN

Desconectado Desconectado

Mensajes: 49


Somos los arquitectos de nuestra propia felicidad.


Ver Perfil WWW
Re: SQL - Ayuda con StoreProcedure(SELECT)
« Respuesta #8 en: 5 Noviembre 2009, 18:45 pm »

por ahora siiiii :)

Gracias!



Un Saludo  ;D
En línea

+=============+
| All you need is Love!  |
+=============+
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con SELECT MAX
Bases de Datos
Feedeex 1 3,691 Último mensaje 7 Julio 2011, 23:26 pm
por Nakp
ayuda con select php y javascript
PHP
include (); 4 3,270 Último mensaje 19 Septiembre 2012, 00:14 am
por include ();
ayuda con select y group by
Bases de Datos
d91 8 4,124 Último mensaje 18 Noviembre 2015, 16:50 pm
por d91
ayuda con select php
PHP
xavidenia 0 2,328 Último mensaje 8 Octubre 2016, 13:55 pm
por xavidenia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines