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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [RESUELTO]¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [RESUELTO]¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?  (Leído 5,798 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
[RESUELTO]¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
« en: 7 Enero 2012, 16:40 pm »

Veamos... a ver si me podéis echar un cablecillo...
Dada la siguiente tabla:


Necesito armar una consulta que me diga el requisito de cada uno de los cursos. El Número del requisito es el código de otro de los cursos que están en esa misma tabla. Ahora mismo tengo lo siguiente:
Código
  1. SELECT NOMBRE, REQUISITO
  2. FROM CURSO;
Y devuelve:
Cita de: 'Oracle'
NOMBRE   REQUISITO
NINGUNO   0
ESO   0
ESI   1
DAI   2
ASIR   2
BACHILLER   2
ADMINISTRACIÓN   1
FINANZAS   5
COMERCIO   1
MARKETING   7
CONSTRUCCIÓN   5
EDIFICACIÓN   5

¿Cómo hago para sacar el nombre del requisito en lugar del código?

Muchas gracias a todos.


« Última modificación: 7 Enero 2012, 17:31 pm por |Miguel| » En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: ¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
« Respuesta #1 en: 7 Enero 2012, 17:15 pm »

Buenas.

Dentro de la consulta, deberías agregar una segunda vez la tabla 'curso' con un alias. Así podrías seleccionar campos o montar condiciones, subconsultas..., como si se tratase de una tabla diferente.

La consulta podría quedarte así:
Código
  1. SELECT curso.Nombre,curso_requisito.Nombre
  2. FROM curso INNER JOIN curso AS curso_requisito ON curso.requisito = curso_requisito.codigo

En este ejemplo, la segunda referencia a la tabla 'curso' se hace con el alias 'curso_requisito'

Creo que esto es lo que andabas buscando.

Un saludo.


En línea

- Nice to see you again -
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
« Respuesta #2 en: 7 Enero 2012, 17:20 pm »

Lo primero, gracias Bulld0z3r..
Código
  1. SELECT curso.Nombre,curso_requisito.Nombre
  2. FROM curso INNER JOIN curso AS curso_requisito ON curso.requisito = curso_requisito.codigo
Me da el error:
Cita de: Oracle
ORA-00905: falta una palabra clave

PD: antes se me olvidó mencionar que estoy usando ORACLE...


EDITO: Sabía que teóricamente era algo de combinación (join) y que necesitaba alias, gracias a tu sentencia Bulld0z3r he podido darle una vuelta y adaptarla a Oracle y los nombres exactos de mis tablas y campos... la consulta correcta es esta en mi caso:

Código
  1. SELECT CU.NOMBRE, C.NOMBRE
  2. FROM CURSO CU, CURSO C
  3. WHERE CU.ID_CURSO=C.REQUISITO AND CU.NOMBRE!='NINGUNO';

PD: la segunda condición del WHERE es por los datos que hay en mi BBDD, no me interesa que en los resultados salga ese en concreto.

Muchas gracias compi, tema resuelto.
« Última modificación: 7 Enero 2012, 17:29 pm por |Miguel| » En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: ¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
« Respuesta #3 en: 7 Enero 2012, 17:28 pm »

Buenas de nuevo.

En Oracle parece ser que AS, sólo se utiliza para alias en campos. Para tablas no se usa, de modo que quita el AS (deja un espacio entre el nombre real de la tabla y el nombre que das al alias) y prueba.

Un saludo.
En línea

- Nice to see you again -
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿Cómo puedo seleccionar 2 veces el mismo campo por diferente criterio?
« Respuesta #4 en: 7 Enero 2012, 17:30 pm »

Jeje nos hemos contestado a la vez.. es exactamente lo que dices.

Copio otra vez la consulta por si alguien la necesita que esté a mano... y gracias de nuevo.

Código
  1. SELECT CU.NOMBRE, C.NOMBRE
  2. FROM CURSO CU, CURSO C
  3. WHERE CU.ID_CURSO=C.REQUISITO AND CU.NOMBRE!='NINGUNO';
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines