Mostrando entradas con la etiqueta consulta. Mostrar todas las entradas
Mostrando entradas con la etiqueta consulta. Mostrar todas las entradas

martes, 18 de abril de 2017

EJERCICIOS RESUELTOS DE BASE DE DATOS II consultas union

Ej 2.
-
Una oficina gubernamental desea construir un complejo habitacional, para lo cual elaboro la
siguiente Base de Datos:

TRAMO (c_ciudadA, c_ciudadB, Distancia)
CIUDADES (c_ciudad, nombre, cant_escuelas, cant_fabricas)

Para decidir donde instalarlo, desea conocer los siguientes datos:

a) Las ciudades alcanzables desde la ciudad con mayor cantidad de fabricas, recorriendo no más
de dos tramos, c/u de los cuales no puede tener mas de 10km de longitud.
SELECT CB.Nombre
FROM CIUDADES CA, TRAMO T, CIUDADES CB
WHERE CA.Cant_Fabricas = (SELECT MAX(Cant_Fabricas)
FROM CIUDADES
)
AND T.Distancia <= 10
AND T.C_CiudadA = CA.C_Ciudad
AND CB.C_Ciudad = T.C_CiudadB
AND CB.C_Ciudad <> CA.C_Ciudad

UNION

SELECT CB.Nombre
FROM CIUDADES CA, TRAMO T1, TRAMO T2, CIUDADES CB
WHERE CA.Cant_Fabricas = (SELECT MAX(Cant_Fabricas)
FROM CIUDADES
)
AND T1.Distancia <= 10
AND T2.Distancia <= 10
AND T1.C_CiudadA = CA.C_Ciudad
AND T1.C_CiudadB = T2.C_CiudadA
AND CB.C_Ciudad = T2.C_CiudadB
AND CB.C_Ciudad <> CA.C_Ciudad;

b) Las ciudades con mas de 10 fabricas que estén conectadas con todas las demás en forma
directa, siempre que ningún tramo supere los 50km.

SELECT DISTINCT C_Ciudad, C.Nombre
FROM CIUDADES AS C, TRAMO AS T
WHERE C.Cant_Fabricas > 10 AND
C.C_Ciudad = T.C_CiudadA AND
T.Distancia < 50
GROUP BY C.C_CIUDAD,
C.Nombre
HAVING COUNT(C.C_Ciudad) = (SELECT COUNT (C1.C_CIUDAD)-FROM CIUDADES C1);

c) Los pares de ciudades, de la forma (ciudad1, ciudad2), que son alcanzables a través de, a lo
sumo, otra ciudad, llámese a esta, ciudad3 (esto es, encontrar los caminos ciudad1-ciudad3-ciudad2).

SELECT CA.Nombre, CB.Nombre
FROM CIUDADES AS CA, TRAMO AS T1, TRAMO AS T2, CIUDADES AS CB
WHERE T1.C_CiudadA = CA.C_Ciudad
AND T1.C_CiudadB = T2.C_CiudadA
AND CB.C_Ciudad = T2.C_CiudadB
AND CB.C_Ciudad <> CA.C_Ciudad;



ENTRADAS POPULARES