Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-09-2004
pigu pigu is offline
Miembro
 
Registrado: jul 2004
Posts: 12
Poder: 0
pigu Va por buen camino
Hola Roman:

En verdad te agradezco tu ayuda, en serio.
Te comento, la consulta sql nº1:
Código SQL [-]
select
correlativas.correlativa
from correlativas
where
correlativas.codigo1 = 84
funciona, es decir, me devuelve los codigos de las materias que son correlativas con el codigo de materia ingresado.
La segunda...
Código SQL [-]
select
correlativas.correlativa
from correlativas
left join materias
on materias.codigo = correlativas.codigo1
where
materias.nombre = "Programación 2"
tambien funciona de maravillas...

pero la tercera...
me devuelve como resultado el mismo nombre de la materia ingresada como parametro de busqueda repetida 2 veces...

Como te comentaba en la pregunta inicial..
probé con la siguiente consulta sql...:
esta es diferente a la primera...
Código SQL [-]
 
select materias.nom_materia 
from materias 
where materias.cod_materia 
in (select correlativas.materia 
from correlativas 
where correlativas.materia = 
(select cod_materia 
from materias 
where materias.nom_materia = 'Programacion 2'))

Será que no soporta subconsultas anidadas interbase???

Desde ya muchas gracias por tu ayuda

Última edición por pigu fecha: 24-09-2004 a las 02:46:30.
Responder Con Cita
  #2  
Antiguo 24-09-2004
pigu pigu is offline
Miembro
 
Registrado: jul 2004
Posts: 12
Poder: 0
pigu Va por buen camino
Hola Roman:

Encontre la falla en la consulta que habia ejecutado en un principio....

es decir, me habia equivocado en la subconsulta 1:
Código SQL [-]
(select correlativas.materia 
from correlativas 
where correlativas.materia

deberia haber puesto...
Código SQL [-]
(select correlativas.correlativa 
from correlativas 
where correlativas.materia

La consulta completa es:
Código SQL [-]
select materias.nom_materia
from materias
where materias.cod_materia
in (select correlativas.correlativa
from correlativas
where correlativas.materia =
(select cod_materia
from materias
where materias.nom_materia = 'Programacion 2'))

Gracias por el envion que me diste para resolver el problema...

Saludos cordiales desde Argentina
Responder Con Cita
  #3  
Antiguo 24-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No conozco interbase pero seguramente que sí acepta subconsultas anidadas. Sólo que en este caso no es necesario, nada más hay que hacer una modificación. Necesitas hacer un segundo join a la tabla materias:

Código SQL [-]
select
  mat.nombre
from correlativas
left join materias
  on materias.codigo = correlativas.codigo1
left join materias mat
  on materias.codigo = correlativas.correlativa
where
  materias.nombre = "Programación 2"

// Saludos
Responder Con Cita
  #4  
Antiguo 24-09-2004
pigu pigu is offline
Miembro
 
Registrado: jul 2004
Posts: 12
Poder: 0
pigu Va por buen camino
Gracias Roman por tu segunda respuesta...
parece que me adelante a tu contestacion...

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:53:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi