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

RE:Ayuda en consulta simple

Publicado por Leonardo Josue (880 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