Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

select - problema con subconsulta

Estas en el tema de select - problema con subconsulta en el foro de Mysql en Foros del Web. hola! tengo un pequeño problema con el siguiente SP Tengo una tabla con los siguientes campos: Actividad cod_actividad char(10) pk des_actividad varchar(80) cod_actividad_padre char(10) El ...
  #1 (permalink)  
Antiguo 22/04/2010, 17:12
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
select - problema con subconsulta

hola! tengo un pequeño problema con el siguiente SP

Tengo una tabla con los siguientes campos:

Actividad
cod_actividad char(10) pk
des_actividad varchar(80)
cod_actividad_padre char(10)

El cod_actividad_padre viene a ser un titulo que dentro tiene actividades, por ejemplo:

Actividades de usuario (2) (actividad padre que contiene actividades como crear y visualizar)
- crear (1)
- visualizar


Cuando se registra una actividad (1) y se ingresa un cod_actividad_padre (2) quiere decir que esa actividad (1) tiene como actividad padre a (2).

El SP tiene la siguiente forma:

Código MySQL:
Ver original
  1. CREATE DEFINER=`root`@`%` PROCEDURE `sp_actividad_select`
  2. ( in param_cod_actividad char(10))
  3.         select
  4.         cod_actividad,
  5.         des_actividad,
  6.         cod_actividad_padre,
  7.         (select des_actividad from actividad where cod_actividad_padre=cod_actividad),        
  8.         from actividad
  9.         where cod_actividad=param_cod_actividad;

Quisiera mostrar la descripcion del codigo actividad padre a la que pertenece cierta actividad (el cual su codigo es ingresado como parametro en el SP), pero lo malo es que de esta forma siempre muestra null. Habra forma que pueda mostrarlo? gracias!
  #2 (permalink)  
Antiguo 24/04/2010, 09:25
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Respuesta: select - problema con subconsulta

Ya encontre la solucion, primero habia que definir una variable donde se guarde el cod_padre y luego en el select solo se llamaba la variable:

Código MySQL:
Ver original
  1. CREATE DEFINER=`root`@`%` PROCEDURE `sp_actividad_select`( IN param_cod_actividad CHAR(10))
  2. declare var char(10);
  3. set var=(select des_actividad from actividad where cod_actividad=param_cod_actividad);    
  4. SELECT        
  5. cod_actividad,        
  6. des_actividad,        
  7. cod_actividad_padre,        
  8. (SELECT des_actividad FROM actividad WHERE cod_actividad=var)                
  9. FROM actividad        
  10. WHERE cod_actividad=param_cod_actividad;END

Etiquetas: select, subconsulta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:23.