DIAGRAMA DE LA BASE DE DATOS DISTRIBUIDORA PROVEEDORES Nom_Prov Cat_Prov Ciudad_prov COMPONENTES ENVIOS ARTICULOS CONSULTAS A LA BASE DE DATOS CREATE DATABASE Distribuidora GO USE Distribuidora GO SELECT * FROM dbo.PROVEEDORES Cod_Prov P1 P2 P3 P4 P5 Nom_Prov CARLOS JUAN JOSE INMA EVA Cat_Prov 20 10 30 20 30 Ciudad_prov SEVILLA MADRID SEVILLA SEVILLA CACERES SELECT * FROM dbo.COMPONENTES Cod_Comp C1 C2 C3 C4 C5 C6 Nom_Comp X3A B85 C4B C4B VT8 C30 Color_Comp ROJO VERDE AZUL ROJO AZUL ROJO Peso_Comp 12 17 17 14 12 19 Ciudad_Comp SEVILLA MADRID MALAGA SEVILLA MADRID SEVILLA SELECT * FROM ARTICULOS Cod_Art T1 T2 T3 T4 T5 T6 T7 Nom_Art CLASIFICADORA PERFORADORA LECTORA CONSOLA MEZCLADORA TERMINAL CINTA Ciudad_Art MADRID MALAGA CACERES CACERES SEVILLA BARCELONA SEVILLA SELECT * FROM ENVIOS Cod_Prov P1 P1 P2 P2 P2 P2 P2 P2 P2 P2 P3 P3 P4 P4 P5 P5 P5 P5 P5 Cod_Comp C1 C1 C3 C3 C3 C3 C3 C3 C3 C5 C3 C4 C6 C2 C2 C2 C5 C5 C6 Cod_Art T1 T4 T1 T2 T3 T4 T5 T6 T7 T2 T1 T2 T3 T7 T2 T4 T4 T7 T2 Canidad 200 700 400 200 200 500 600 400 800 100 200 500 300 300 200 100 500 100 200 P5 P5 P5 P5 P5 C1 C3 C4 C5 C6 T4 T4 T4 T5 T4 100 200 800 400 500 1)-- Obtener todos los detalles de todos los articulos de la ciudad de CACERES SELECT * FROM ARTICULOS WHERE Ciudad_Art = 'CACERES' GO 2)-- Obtener todos los valores de Cod_Prov para los proveedores que abastecen el Articulo T1 SELECT DISTINCT Cod_Prov FROM ENVIOS WHERE Cod_Art = 'T1' GO 3)-- Obtener la lista de pares de atributos (color,ciudad) de la tabla componentes eliminando los pares duplicados SELECT DISTINCT Color_Comp,Ciudad_Comp FROM COMPONENTES GO 4)-- Obtener de la tabla Articulos los valores de Cod_Art y Ciudad_Art donde el nombre de la ciudad acaba en D o contiene al menos una E SELECT Cod_Art,Ciudad_Art FROM ARTICULOS WHERE Ciudad_Art LIKE '%D' OR Ciudad_Art LIKE '%E%' GO 5)-- Obtener los valores de Cod_Prov para los proveedores que suministran para el articulo T1 el componente C1 SELECT Cod_Prov FROM ENVIOS WHERE Cod_Art = 'T1' AND Cod_Comp = 'C1' GO 6)-- Obtener los valores de Nom_Art en orden alfabetico para los articulos abastecidos por el proveedor P1 SELECT Nom_Art FROM ARTICULOS a,ENVIOS e WHERE e.Cod_Prov = 'P1' AND e.Cod_Art = a.Cod_Art ORDER BY Nom_Art GO -- otra sentencia SELECT DISTINCT Nom_Art FROM ARTICULOS NATURAL JOIN ENVIOS ON Cod_Prov = 'P1' ORDER BY Nom_Art GO 7)-- Obtener los valores de Cod_Comp para los componentes suministrados para cualquier articulo de Madrid SELECT DISTINCT Cod_Comp FROM ENVIOS WHERE Cod_Art IN ( SELECT Cod_Art FROM ARTICULOS WHERE Ciudad_Art = 'MADRID') GO 8)-- Obtener todos los valores de Cod_Comp de los componentes tales que ningun otro componente tenga un valor de peso inferior SELECT Cod_Comp FROM COMPONENTES WHERE Peso_Comp = ( SELECT MIN (Peso_Comp)FROM COMPONENTES ) GO 9)-- Obtener los valores de Cod_Prov para los proveedores que suministren los articulos T1 y T2 SELECT Cod_Prov FROM ENVIOS WHERE Cod_Art = 'T1' INTERSECT SELECT Cod_Prov FROM ENVIOS WHERE Cod_Art = 'T2' GO 10)-- Obtener los valores de Cod_Prov para los proveedores que suministran para un articulos de Sevilla o Madrid un componente ROJO SELECT Cod_Prov FROM ENVIOS e,COMPONENTES c,ARTICULOS a WHERE e.Cod_Comp = c.Cod_Comp AND e.Cod_Art = a.Cod_Art AND c.Color_Comp = 'ROJO' AND a.Ciudad_Art IN ('SEVILLA','MADRID') GO 11)-- Obtener,mediante subconsultas, los valores de Cod_Comp para los componentes suministrados para algun articulo de Sevilla por un proveedor de Sevilla SELECT Cod_Comp FROM ENVIOS WHERE Cod_Art IN ( SELECT Cod_Art FROM ARTICULOS WHERE Ciudad_Art ='SEVILLA') AND Cod_Prov IN (SELECT Cod_Prov FROM PROVEEDORES WHERE Ciudad_prov ='SEVILLA') GO 12)-- Obtener los valores de Cod_Art para los articulos que usan al menos un componente que se pueden obtener con el proveedor P1 SELECT DISTINCT Cod_Art FROM ENVIOS WHERE Cod_Comp IN ( SELECT DISTINCT Cod_Comp FROM ENVIOS WHERE Cod_Prov ='P1') GO 13)-- Obtener todas las ternas (ciudad,Cod_Comp,ciudad) tales que un proveedor de la primera ciudad suministre el componente especificado para un articulo montado en la segunda ciudad SELECT p.Ciudad_prov ,e.Cod_Comp,a.Ciudad_Art FROM ENVIOS e,PROVEEDORES p,ARTICULOS a WHERE e.Cod_Prov = p.Cod_Prov AND e.Cod_Art = a.Cod_Art GO 14)-- sin recuperar las ternas en los que los dos valores de ciudad sean los mismos SELECT p.Ciudad_prov ,e.Cod_Comp,a.Ciudad_Art FROM ENVIOS e,PROVEEDORES p,ARTICULOS a WHERE e.Cod_Prov = p.Cod_Prov AND e.Cod_Art = a.Cod_Art AND p.Ciudad_prov <> a.Ciudad_Art GO 15)-- Obtener el numero de suministros, el de articulos distintos suministrados y la cantidad total de articulos suministrados por el proveedor P2 SELECT COUNT(*)AS 'NUMERO DE SUMINISTROS', COUNT (DISTINCT Cod_Art)AS 'ARTICULOS SUMINISTRADOS', SUM(Cantidad) AS 'TOTAL ARTICULOS SUMINISTRADOS' FROM ENVIOS WHERE Cod_Prov ='P2' GO 16)-- para cada articulo y componente suministrado obtener los valores de Cod_Comp Cod_Art y la cantidad total correspondiente SELECT Cod_Comp,Cod_Art,SUM(Cantidad) AS 'TOTAL' FROM ENVIOS GROUP BY Cod_Art,Cod_Comp GO 17)-- Obtener los valores de Cod_Art de los articulos abastecidos al menos por un proveedor que no viva en Madrid y que no este an la misma ciudad en la que se monta el articulo SELECT DISTINCT e.Cod_Art FROM ENVIOS e,ARTICULOS a WHERE e.Cod_Art = a.Cod_Art AND EXISTS ( SELECT * FROM PROVEEDORES p WHERE p.Ciudad_prov != a.Ciudad_Art AND p.Cod_Prov = e.Cod_Prov AND p.Ciudad_prov !='MADRID') GO 18)-- Obtener los valores de Cod_Prov para los proveedores que suministran al menos un componente ROJO Please download full document at www.DOCFOC.com Thanks