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

consulta sql

Estas en el tema de consulta sql en el foro de Oracle en Foros del Web. Buenas soy nuevo aqui, vengo a por u poco de ayuda que la verdad es que me hace falta.... La consulta es la siguiente: Dni ...
  #1 (permalink)  
Antiguo 29/04/2009, 14:35
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
consulta sql

Buenas soy nuevo aqui, vengo a por u poco de ayuda que la verdad es que me hace falta....

La consulta es la siguiente:

Dni de los alumnos que son socios al menos de las mismas bibliotecas que el alumno con dni = 8888

dispongo de la tabla socio(cb, dni, a) donde cb: es el codigo biblioteca, dni: es el dni del alumno y, a: nombre del alumno.

la hice de esta forma

SELECT DNI
FROM SOCIO
WHERE (DNI <> 8888) AND (CB = ALL (SELECT CB
FROM SOCIO
WHERE DNI = 8888));

El all me da falso, y existe un alumno que es socio de las mismas bibliotecas que el del dni 8888

Luego quite el all

SELECT DNI
FROM SOCIO
WHERE (DNI <> 8888) AND (CB = (SELECT CB
FROM SOCIO
WHERE DNI = 8888));

WHERE (DNI <> 8888) AND (CB = (SELECT CB
*
ERROR at line 3:
ORA-01427: single-row subquery returns more than one row

Me devuelve ese error ya que me devuelven varias filas y no una que es lo que espera.

No se como seguir a partir de aquí, el dni 8888 tiene 2 cb y no se como comprobar que otros dni tengan esos dos mismo cb.

Perdonad el ladrillo, pero si me podéis ayudar les estaré muy agradecido.

Un saludo.
  #2 (permalink)  
Antiguo 29/04/2009, 20:23
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: consulta sql

checate el uso del exists, igual te puede ayudar
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 30/04/2009, 01:51
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: consulta sql

yo creo que podria ser asi:

select dni from socio
where cb in(select cb from socio where dni = 8888)
  #4 (permalink)  
Antiguo 07/05/2009, 10:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: consulta sql

Cita:
Iniciado por wanksta Ver Mensaje
Buenas soy nuevo aqui, vengo a por u poco de ayuda que la verdad es que me hace falta....

La consulta es la siguiente:

Dni de los alumnos que son socios al menos de las mismas bibliotecas que el alumno con dni = 8888

dispongo de la tabla socio(cb, dni, a) donde cb: es el codigo biblioteca, dni: es el dni del alumno y, a: nombre del alumno.

la hice de esta forma

SELECT DNI
FROM SOCIO
WHERE (DNI <> 8888) AND (CB = ALL (SELECT CB
FROM SOCIO
WHERE DNI = 8888));

El all me da falso, y existe un alumno que es socio de las mismas bibliotecas que el del dni 8888

Luego quite el all

SELECT DNI
FROM SOCIO
WHERE (DNI <> 8888) AND (CB = (SELECT CB
FROM SOCIO
WHERE DNI = 8888));

WHERE (DNI <> 8888) AND (CB = (SELECT CB
*
ERROR at line 3:
ORA-01427: single-row subquery returns more than one row

Me devuelve ese error ya que me devuelven varias filas y no una que es lo que espera.

No se como seguir a partir de aquí, el dni 8888 tiene 2 cb y no se como comprobar que otros dni tengan esos dos mismo cb.

Perdonad el ladrillo, pero si me podéis ayudar les estaré muy agradecido.

Un saludo.
  #5 (permalink)  
Antiguo 07/05/2009, 10:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: consulta sql

prueba con esto :


select a.dni
from socio a
where a.cb in (select b.cb from socio b
where b.dni='8888') and
a.dni<>'8888';
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 17:35.