Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/07/2012, 10:30
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: como se hacen estas consultas sql

Hola vani18:

Para el primer ejercicio:

Cita:
a- lISTE ID Y NOMBRE DE LOS MATERIALES QUE SON PROVISTAS POR TODOS LOS PROVEEDORES
Tienes que tener en cuenta dos cosas, en primer lugar la tabla PROVEE (para saber qué material es proveído por qué proveedor) y la tabla PROVEEDOR, ya que debes determinar cuál es el número de proveedores existentes. Hay varias formas de resolver esta consulta, pero la idea sería básicamente contar cuantos proveedores tienen cada material y asegurarte que ese número sea igual al total de proveedores (utilizando HAVING), en otras palabras, sería más o menos así:


Código MySQL:
Ver original
  1. mysql> SELECT * FROM provee;
  2. +------------+--------+
  3. | idMaterial | idProv |
  4. +------------+--------+
  5. |          1 |      1 |
  6. |          1 |      2 |
  7. |          2 |      1 |
  8. |          3 |      2 |
  9. +------------+--------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT * FROM proveedores;
  13. +--------+--------+
  14. | idProv | nombre |
  15. +--------+--------+
  16. |      1 | uno    |
  17. |      2 | dos    |
  18. +--------+--------+
  19. 2 rows in set (0.07 sec)
  20.  
  21. mysql> SELECT idMaterial, COUNT(*) FROM provee GROUP BY idMaterial;
  22. +------------+----------+
  23. | idMaterial | COUNT(*) |
  24. +------------+----------+
  25. |          1 |        2 |
  26. |          2 |        1 |
  27. |          3 |        1 |
  28. +------------+----------+
  29. 3 rows in set (0.33 sec)

Aquí resulta obvió que ni el material 2 ni el material 3 son provistos por todos los proveedores existentes...

Para la segunda consulta:

Cita:
B- MUESTRE EL NOMBRE DE LOS MATERIALES QUE NO SON USADOS EN NINGUNA HERRAMIENTA
En esta también puedes hacerla de muchas maneras, podrías utilizar una sentencia NOT IN, NOT EXISTS o hacer un LEFT JOIN y preguntar por los registros Nulos...

SELECCIONAR de la lista de MATERIALES todos los id DONDE el id
NO SE ENCUENTRE (SELECCIONAR todos los materiales que se utilizan en COMPUESTO_POR)

Intenta resolverlas y si continuas con dudas nos comentas y lo revisamos.

Saludos
Leo.