e.1 obtener los detalles completos de todos los proyectos. select jn, jnombre, ciudad from j;../.....

41
E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j; ../.. SELECT * FROM j;

Upload: baldomero-atienza

Post on 09-Feb-2015

4 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.1 Obtener los detalles completos de todos los proyectos.

SELECT jn, jnombre, ciudad

FROM j; ../..

SELECT *

FROM j;

Page 2: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.2 Obtener los detalles completos de todos los proyectos de ‘Las Palmas’.

SELECT *

FROM j

WHERE ciudad =‘Las Palmas’;

SELECT jn, jnombre, ciudad

FROM j

WHERE ciudad =‘Las Palmas’; ../..

Page 3: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.3 Obtener los códigos de los suministradores que suministran partes al proyecto de código ‘J1’, ordenados por código de proveedor.

SELECT DISTINCT sn

FROM spj

WHERE jn = ‘J1’ ORDER by sn;

Page 4: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.4 Obtener todas las ventas en las cuales la cantidad está en el intervalo 300 a 750 inclusive.

SELECT sn, pn, jn, cantidad

FROM spj

WHERE cantidad >= 300

AND cantidad <= 750;

Page 5: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.5 Obtener una lista de todas las combinaciones parte-color/parte-ciudad, eliminando todas las parejas color/ciudad repetidas.

SELECT DISTINCT color, ciudad

FROM p;

Page 6: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.6 Obtener todas las tripletas código-proveedor/código-parte/código-proyecto tales que el proveedor, la parte y el proyecto indicados estén todos en la misma ciudad (cosituados) .

SELECT sn, pn, jn

FROM s, p, j

WHERE s.ciudad=p.ciudad

AND p.ciudad=j.ciudad;

Page 7: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.7 Obtener todas las tripletas código-proveedor/código-parte/ código-proyecto tales que el proveedor, la parte y el proyecto indicados no estén cosituados .

SELECT sn, pn, jn

FROM s, p, j

WHERE NOT (s.ciudad=p.ciudad

AND p.ciudad=j.ciudad); ../..

SELECT sn, pn, jn

FROM s, p, j

WHERE s.ciudad<>p.ciudad

OR p.ciudad<>j.ciudad;

Page 8: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.8 Obtener todas las tripletas código-proveedor/código-parte/código-proyecto tales que el proveedor, la parte y el proyecto indicados estén todos en diferente ciudad .

SELECT sn, pn, jn

FROM s, p, j

WHERE s.ciudad<>p.ciudad

AND p.ciudad<>j.ciudad

AND s.ciudad<>j.ciudad;

Page 9: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.9 Obtener los códigos de las partes suministradas por algún proveedor de Las Palmas.

SELECT DISTINCT pn

FROM s, spj

WHERE s.sn=spj.sn

AND ciudad=‘Las Palmas’;

Page 10: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.10 Obtener los códigos de las partes suministradas por un suministrador de ‘Las Palmas’ a un proyecto en ‘Las Palmas’.

SELECT DISTINCT pn

FROM s, j, spj

WHERE s.sn=spj.sn

AND j.jn=spj.jn

AND s.ciudad=‘Las Palmas’

AND j.ciudad=‘Las Palmas’;

Page 11: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.11 Obtener todas las parejas de nombres de ciudad tales que un suministrador de la misma ciudad suministre partes a un proyecto de la segunda ciudad.

SELECT DISTINCT s.ciudad, j.ciudad

FROM s, j, spj

WHERE s.sn=spj.sn

AND j.jn=spj.jn;

Page 12: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.12 Obtener los códigos de las partes suministradas a un proyecto por un suministrador situado en la misma ciudad que el proyecto.

SELECT DISTINCT pn

FROM s, j, spj

WHERE s.sn=spj.sn

AND j.jn=spj.jn

AND s.ciudad=j.ciudad;

Page 13: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.13 Obtener los códigos de los proyectos a los cuales suministra partes por lo menos un suministrador situado en una ciudad distinta.

SELECT DISTINCT j.jn

FROM s, j, spj

WHERE s.sn=spj.sn

AND j.jn=spj.jn

AND s.ciudad<>j.ciudad;

Page 14: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.14 Obtener todas las parejas de códigos de parte tales que algún suministrador suministre las dos partes indicadas.

SELECT DISTINCT spjX.pn, spjY.pn

FROM spj spjX, spj spjY

WHERE spjX.sn=spjY.sn

AND spjX.pn>spjY.pn;

Page 15: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.15 Obtener el número total de proyectos a los cuales suministra partes el suministrador de código ‘S1’.

SELECT COUNT (DISTINCT jn)

FROM spj

WHERE sn=‘S1’;

Page 16: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.16 Obtener la cantidad total de la parte ‘P1’ suministrada por el suministrador ‘S1’.

SELECT SUM (cantidad)

FROM spj

WHERE sn=‘S1’

AND pn=‘P1’;

Page 17: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.17 Para cada parte suministrada a un proyecto, obtener el código de parte, el código de proyecto y la cantidad total correspondiente.

SELECT pn, jn, SUM (cantidad)

FROM spj

GROUP BY pn, jn;

Page 18: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.18 Obtener los códigos de las partes suministradas a algún proyecto tales que la cantidad promedio suministrada sea mayor que 320.

SELECT DISTINCT pn

FROM spj

GROUP BY pn, jn

HAVING AVG(cantidad)>320;

Page 19: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.19 Obtener todas las ventas para las cuales la cantidad no sea nula.

SELECT sn, pn, jn, cantidad

FROM spj

WHERE cantidad IS NOT NULL; ../..

SELECT sn, pn, jn, cantidad

FROM spj

WHERE cantidad = cantidad;

Page 20: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.20 Obtener códigos de proyectos y ciudades en los cuales la segunda letra del nombre de la ciudad sea una ‘O’.

SELECT jn, ciudad

FROM j

WHERE ciudad LIKE ‘_O%’;

Page 21: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.21 Obtener los nombres de los proyectos a los cuales suministra partes el suministrador con código ‘S1’.

SELECT jnombre

FROM j

WHERE jn IN

(SELECT jn

FROM spj

WHERE sn=‘S1’);

Page 22: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.22 Obtener los colores de las partes suministradas por el suministrador de código ‘S1’.

SELECT DISTINCT color

FROM p

WHERE pn IN

(SELECT pn

FROM spj

WHERE sn=‘S1’);

Page 23: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.23 Obtener los códigos de las partes suministradas a cualquier proyecto en ‘Las Palmas’.

SELECT DISTINCT pn

FROM spj

WHERE jn IN

(SELECT jn

FROM j

WHERE ciudad=‘Las Palmas’);

Page 24: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 jn

FROM spj

WHERE pn IN

(SELECT pn

FROM spj

WHERE sn=‘S1’);

Page 25: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 snFROM spjWHERE pn IN

(SELECT pnFROM spjWHERE sn IN

(SELECT snFROM spjWHERE pn IN

(SELECT pnFROM pWHERE color=‘rojo’)));

Page 26: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.26 Obtener los códigos de los suministradores cuya situación sea inferior a la del suministrador de código ‘S1’.

SELECT sn

FROM s

WHERE situacion <

(SELECT situacion

FROM s

WHERE sn=‘S1’);

Page 27: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 jn

FROM j

WHERE ciudad =

(SELECT MIN (ciudad)

FROM j);

Page 28: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 jnFROM spjWHERE pn=‘P1’GROUP BY jnHAVING AVG(cantidad) >

(SELECT MAX (cantidad)FROM spjWHERE jn=‘J1’);

Page 29: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 snFROM spj spjXWHERE pn=‘P1’AND cantidad >

(SELECT AVG (cantidad)FROM spj spjYWHERE pn=‘P1’AND spjX.jn=spjY.jn);

Page 30: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.30 Obtener los códigos de las partes suministradas a cualquier proyecto en ‘Las Palmas’.

SELECT DISTINCT pnFROM spjWHERE EXISTS

(SELECT *FROM jWHERE jn=spj.jnAND ciudad = ‘Las Palmas’);

Page 31: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

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

SELECT DISTINCT spjX.jnFROM spj spjXWHERE EXISTS

(SELECT *FROM spj spjYWHERE spjX.pn=spjY.pnAND spjY.sn = ‘S1’);

Page 32: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.32 Obtener los códigos de los proyectos a los cuales no suministra ninguna parte ROJA ninguno de los suministradores de Las Palmas.

SELECT jnFROM jWHERE NOT EXISTS

(SELECT *FROM spjWHERE jn=j.jnAND pn IN

(SELECT pnFROM pWHERE color=‘rojo’)

AND sn IN(SELECT snFROM sWHERE ciudad = ‘Las Palmas’) );

Page 33: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.33 Obtener los códigos de los proyectos para los cuales ‘S1’ es el único suministrador.

SELECT DISTINCT jn

FROM spj spjX

WHERE NOT EXISTS

(SELECT *

FROM spj spjY

WHERE spjY.jn = spjX.jn

AND spjY.sn <> ‘S1’);

Page 34: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.34 Obtener los códigos de las partes suministradas a todos los proyectos de ‘Las Palmas’.

SELECT DISTINCT pn

FROM spj spjX

WHERE NOT EXISTS

(SELECT *

FROM j

WHERE ciudad = ‘Las Palmas’

AND NOT EXISTS

(SELECT *

FROM spj spjY

WHERE spjY.pn = spjX.pn

AND spjY.jn = j.jn) );

Page 35: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.35 Obtener los códigos de los suministradores que suministran la misma parte a todos los proyectos.SELECT DISTINCT sn

FROM spj spjX

WHERE EXISTS

(SELECT pn

FROM spj spjY

WHERE NOT EXISTS

(SELECT jn

FROM j

WHERE NOT EXISTS

(SELECT *

FROM spj spjZ

WHERE spjZ.sn = spjX.sn

AND spjZ.pn = spjY.pn

AND spjZ.jn = j.jn) ) );

Page 36: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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 jn

FROM spj spjX

WHERE NOT EXISTS

(SELECT pn

FROM spj spjY

WHERE spjY.sn = ‘S1’

AND NOT EXISTS

(SELECT *

FROM spj spjZ

WHERE spjZ.pn = spjY.pn

AND spjZ.jn = spjX.jn) );

Page 37: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.37 Obtener los códigos de los proyectos que utilicen sólo partes suministradas por el suministrador ‘S1’.

SELECT DISTINCT jn

FROM spj spjX

WHERE NOT EXISTS

(SELECT *

FROM spj spjY

WHERE spjY.jn = spjX.jn

AND NOT EXISTS

(SELECT *

FROM spj spjZ

WHERE spjZ.pn = spjY.pn

AND spjZ.sn = ‘S1’) );

Page 38: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.38 Obtener los códigos de los proyectos a los cuales el suministrador ‘S1’ suministre todos los tipos de parte suministrados por el.

SELECT DISTINCT jnFROM spj spjXWHERE NOT EXISTS

(SELECT *FROM spj spjYWHERE EXISTS

(SELECT *FROM spj spjAWHERE spjA.sn = ‘S1’AND spjA.pn = spjY.pn)

AND NOT EXISTS(SELECT *FROM spj spjBWHERE spjB.sn = ‘S1’AND spjB.pn = spjY.pnAND spjB.jn = spjX.jn) );

Page 39: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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’.

SELECT DISTINCT jnFROM spj spjXWHERE NOT EXISTS

(SELECT *FROM spj spjYWHERE EXISTS

(SELECT *FROM spj spjAWHERE spjA.pn = spjY.pnAND spjA.jn = spjX.jn)

AND NOT EXISTS(SELECT *FROM spj spjBWHERE spjB.sn = ‘S1’AND spjB.pn = spjY.pnAND spjB.jn = spjX.jn) );

Page 40: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.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.

SELECT DISTINCT jnFROM spj spjXWHERE NOT EXISTS

(SELECT *FROM spj spjYWHERE EXISTS

(SELECT *FROM spj spjAWHERE spjA.sn = spjY.snAND spjA.pn IN

(SELECT pnFROM pWHERE color = ‘rojo’)

AND NOT EXISTS(SELECT *FROM spj spjBWHERE spjB.sn = spjY.snAND spjB.jn = spjX.jn) ) );

Page 41: E.1 Obtener los detalles completos de todos los proyectos. SELECT jn, jnombre, ciudad FROM j;../.. SELECT * FROM j;

E.41 Obtener una lista ordenada de todas las ciudades en las cuales esté situado por lo menos un suministrador, una prte o un proyecto.

SELECT ciudad FROM s

UNION

SELECT ciudad FROM p

UNION

SELECT ciudad FROM j

ORDER BY 1;