SQL - Ayuda en consulta simple

 
Vista:

Ayuda en consulta simple

Publicado por Daniel (2 intervenciones) el 20/02/2010 19:32:19
Buenos días a tod@s los integrantes del foro.

Mi problema es el siguiente, tengo una tabla con dos claves primarias, IDVEHICULO y IDPIEZA, mi consulta es para utilizarla en un buscador de vehículos y piezas, necesito seleccionar un vehículo que contenga las piezas 1,2 y 3 y sólo esas piezas.

He intentado hacer una selección como la siguiente:

select IDVEHICULO from vehiculo
where IDPIEZA=1
and IDPIEZA=2
and IDPIEZA=3

esta consulta no me funciona, y si utilizo una consulta como

select IDVEHICULO from vehiculo
where IDPIEZA in (1,2,3)

me devuelve todos los vehículos que contienen esas piezas,

¿¿como obtener únicamente el vehículo que contiene las piezas 1,2 y 3?

también he intentado agrupar.. no consigo hacer esta consulta.

Gracias por adelantado a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Ayuda en consulta simple

Publicado por Leonardo Josue (1173 intervenciones) el 23/02/2010 19:15:31
No entiendo muy bien qué es lo que necesitas, tal vez si pones un ejemplo con el contenido de la tabla vehiculo y lo que esperas de salida te podamos ayudar. Pero voy a ser un intento a ver si más o menos esto es lo que necesitas:

Voy a suponer que tienes una tabla como esta

IDVEHICULO|IDPIEZA
A|1
A|2
A|3
B|1
B|2
C|1
C|2
C|3
C|4
D|1
D|2
D|3

En este caso según creo lo que tú necesitas obtener de salida sería sólo los vehículos A y D, ya que el B no tiene la pieza 3 y el vehículo c tiene una pieza 4 extra... por lo tanto la salida sería así

IDVEHICULO
A
D

Si es así entonces deberías hacer algo como esto...

SELECT DISTINCT IDVEHICULO FROM VEHICULOS WHERE
IDVEHICULO IN (SELECT IDVEHICULO FROM VEHICULOS WHERE IDPIEZA = '1')
AND IDVEHICULO IN (SELECT IDVEHICULO FROM VEHICULOS WHERE IDPIEZA = '2')
AND IDVEHICULO IN (SELECT IDVEHICULO FROM VEHICULOS WHERE IDPIEZA = '3')
AND IDVEHICULO NOT IN (SELECT IDVEHICULO FROM VEHICULOS WHERE IDPIEZA NOT IN ('1', '2', '3'))

Saludos

Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en consulta simple

Publicado por Daniel (2 intervenciones) el 26/02/2010 13:05:26
Hola Leonardo, gracias por responder a la pregunta, me vale.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar