Sie sind auf Seite 1von 2

Consultas SQL

21. Obtener los nombres de los proyectos a los cuales suministra partes el suministrador con código ‘S1’. SELECT JNUM FROM J WHERE JNUM IN (SELECT JNUM FROM SPJ WHERE SNUM=’S1’);

22. Obtener los colores de las partes suministradas por el suministrador de código ‘S1’. SELECT DISTINCT COLOR FROM P WHERE PNUM IN (SELECT PNUM FROM SPJ WHERE

SNUM=’S1’);

23. Obtener los códigos de las partes suministradas a cualquier proyecto en ‘Londres’. SELECT DISTINCT PNUM FROM SPJ WHERE JNUM IN (SELECT JNUM FROM J WHERE CIUDAD=’Londres’);

24. Obtener los códigos de los proyectos donde se utilice al menos una de las partes suministradas por el suministrador de código ‘S1’. SELECT DISTINCT JUNM FROM SPJ WHERE PNUM IN (SELECT PNUM FROM SPJ WHERE

SNUM=’S1’);

25. Obtener los códigos de los suministradores que suministren por lo menos una de las partes suministradas por al menos uno de los suministradores que suministran por lo menos una parte roja. SELECT DISTINCT SNUM FROM SPJ WHERE PNUM IN (SELECT PNUM FROM SPJ WHERE SNUM IN (SELECT SNUM FROM SPJ WHERE PNUM IN (SELECT PNUM FROM P WHERE COLOR =’Rojo’)));

26. Obtener los códigos de los suministradores cuya situación sea inferior a la del suministrador de código ‘S1’. SELECT SNUM FROM S WHERE SITUACION < (SELECT SITUACION FROM S WHERE SN=’S1’);

27. Obtener los códigos de los proyectos cuya ciudad sea la primera en la lista alfabética de las ciudades donde hay proyecto. SELECT JNUM FROM J WHERE CIUDAD = (SELECT MIN (CIUDAD) FROM J);

28. Obtener los códigos de los proyectos a los cuales se suministre la parte ‘P1’ en una cantidad promedio mayor que la cantidad máxima en la cual se suministra alguna parte al proyecto

‘J1’.

SELECT JNUM FROM SPJ WHERE PNUM = ‘P1’ GROUP BY JNUM HAVING AVG(CANTIDAD) > (SELECT MAX (CANTIDAD) FROM SPJ WHERE JNUM = ‘J1’);

29. Obtener los códigos de los suministradores que suministren la parte ‘P1’ a algún proyecto en una cantidad mayor que la cantidad promedio enviada de la parte ‘P1’ para ese proyecto. SELECT DISTINCT SNUM FROM SPJ SPJX WHERE PNUM=’P1’ AND CANTIDAD > (SELECT AVG (CANTIDAD) FROM SPJ SPJY WHERE PNUM=’P1’ AND SPJX.JNUM=SPJY.JNUM);

30. Obtener los códigos de las partes suministradas a cualquier proyecto en ‘Londres’. SELECT DISTINCT PNUM FROM SPJ WHERE EXISTS (SELECT * FROM J WHERE JNUM = SPJ.JNUM AND CIUDAD = ‘Londres’);

31. Obtener los códigos de los proyectos donde se utilice al menos una de las partes suministradas por el suministrador ‘S1’.

SELECT SPJX.JNUM FROM SPJ SPJX WHERE EXISTS (SELECT * FROM SPJ SPJY WHERE SPJX.PNUM=SPJY.PNUM AND SPJY.SNUM=’S1’);

32. Obtener los códigos de los proyectos a los cuales no suministra ninguna parte ROJA ninguno de los suministradores de Londres. SELECT JNUM FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE JNUM=J.JNUM AND PNUM IN (SELECT PNUM FROM P WHERE COLOR = ‘Rojo’) AND SNUM IN (SELECT SNUM FROM S WHERE CIUDAD = ‘Londres’));

33. Obtener los códigos de los proyectos para los cuales ‘S1’ es el único suministrador. SELECT DISTINCT JNUM FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.JNUM = SPJX.JNUM AND SPJY.SNUM<>’S1’);

34. Obtener los códigos de las partes suministradas a todos los proyectos de ‘Londres’. SELECT DISTINCT PNUM FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM J WHERE CIUDAD = ‘Londres’ AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNUM=SPJX.PNUM AND SPJY.JNUM=J.JNUM));

35. Obtener los códigos de los suministradores que suministran la misma parte a todos los proyectos. SELECT DISTINCT SNUM SPJ SPJX WHERE EXISTS (SELECT PNUM FROM SPJ SPJY WHERE NOT EXISTS (SELECT JNUM FROM J WHERE NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.SNUM =SPJX.SNUM AND SPJZ.PNUM = SPJY.PNUM AND SPJZ.JNUM = J.JNUM)));

36. Obtener los códigos de los proyectos a los cuales se suministren por lo menos todas las partes suministradas por el proveedor ‘S1’. SELECT DISTINCT JNUM FROM SPJ SPJX WHERE NOT EXISTS (SELECT PNUM SPJ SPJY WHERE SPJY.SNUM = ‘S1’ AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.PNUM=SPJY.PNUM AND SPJZ.JNUM=SPJX.JNUM));

37. Obtener los códigos de los proyectos que utilicen sólo partes suministradas por el suministrador ‘S1’. SELECT DISTINCT JNUM FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.JNUM=SPJX.JNUM AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.PNUM=SPJY.PNUM AND SPJZ.SNUM=’S1’));

38. Obtener los códigos de los proyectos a los cuales el suministrador ‘S1’ suministre todos los tipos de parteS suministrados por él. SELECT DISTINCT JNUM FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE EXISTS (SELECT * FROM SPJ SPJA WHERE SPJA.SNUM=S1 AND SPJA.PNUM=SPJY.PNUM) AND NOT EXISTS (SELECT * FROM SPJ SPJB WHERE SPJB.SNUM=’S1’ ANDSPJB.PNUM=SPJY.PNUM AND SPJB.JNUM=SPJX.JNUM));

39. Obtener los códigos de los proyectos tales que al menos cierta cantidad de cada parte utilicada por ellos le sea suministrada por el suministrador ‘S1’.

40. Obtener los códigos de los proyectos a los cuales suministren partes todos y cada uno de los suministradores que suministran alguna parte roja.