Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

CREATE table Suppliers (

id_supplier int PRIMARY key ,


supplier_name char(30) not NULL ,
address char(30) not NULL ,
city char(30) not NULL ,
phone int not NULL ,
email varchar(100),
employee_contact int ,
FOREIGN KEY (employee_contact) REFERENCES Employeesem(id_employee)
);

CREATE table Employees (


id_employee int PRIMARY key NOT NULL ,
employee_name char(30) NOT NULL ,
salary double CHECK (salary >= 12000),
city_empl char(30) NOT NULL,
department_emp int,
email VARCHAR(255) DEFAULT NULL,
FOREIGN key (department_emp) REFERENCES Departments (id_department)

);

CREATE table Departments (


id_department int PRIMARY key not NULL ,
department_name char(30) not NULL,
location char(30)
);

CREATE TABLE Products (


id_product int PRIMARY key not NULL,
product_name char(30) not NULL,
description varchar(100) not NULL,
retail_price float CHECK(retail_price >= 0.1 ) not NULL,
supplier int,
department int,
FOREIGN key (department) REFERENCES Departments(id_department),
FOREIGN key (supplier) REFERENCES Suppliers (id_supplier)
);

CREATE TABLE Orders (


id_product INT not NULL,
date char(30) NOT NULL,
quantity INT,
cost_price double CHECK (cost_price >= 0.1),
FOREIGN KEY (id_product) REFERENCES Products(id_product)
);

INSERT INTO Departments ( id_department ,department_name, location) VALUES


(1, 'Deportes', 'Planta 3 Norte'),
(2, 'Hogar', 'Planta 4'),
(3, 'Electrodomésticos', 'Planta baja'),
(4, 'Informática', 'Planta 5'),
(5, 'Moda femenina', 'Planta 1'),
(6, 'Zapatería', 'Planta 1');

SELECT * FROM Employees

INSERT INTO employees VALUES (32, 'Annabel Rodriguez', 13300, 'Igualada', 2, 'arodriguez@totmillor.com');

INSERT INTO employees VALUES (196, 'Miriam Garcia', 14350.5 , 'Barcelona', 4, 'mgarcia@totmillor.com');
INSERT INTO employees VALUES (186, 'Carlos Domenech', 18000.933, 'Sant Genis', 5, 'cdomenech@totmillor.com');
INSERT INTO employees VALUES (1286, 'Rafael Verano', 27000.401, 'La Mallola', 5, 'rverano@totmillor.com');
INSERT INTO employees VALUES (2113, 'Miquel Capdevall', 21325, 'Barcelona', 1, 'mcapdevall@totmillor.com');
INSERT INTO employees VALUES (2941, 'Ramón Rambert', 12890.15 , 'La Panadella', 4, 'rrambert@totmillor.com');
INSERT INTO employees VALUES (3402, 'Josep Vicenç Genaro', 14350.03, 'Cabra del Camp', 1, 'jvgenaro@totmillor.com');
INSERT INTO employees VALUES (4528, 'Santiago Rosiñol', 16301, 'Jorba', 3, 'srosinyol@totmillor.com');
INSERT INTO employees VALUES (5996, 'Juan Masdelomismo', 29098.34, 'Montmaneu', 2, 'jmasdelomismo@totmillor.com');
INSERT INTO employees VALUES (7827, 'Jordi Puñol', 16401, 'Aguil', 3, 'jpunyol@totmillor.com');
INSERT INTO employees VALUES (9214, 'Alberta Barrena', 18903.88, 'El Bruc', 5, 'abarrena@totmillor.com');
INSERT INTO employees VALUES (10123, 'Ramón Ceniza', 17302.19, 'Esparraguera', 1, 'rceniza@totmillor.com');
INSERT INTO employees VALUES (10150, 'José Matavacas', 18483.93, 'Igualada', 2, 'jmatavacas@totmillor.com');
INSERT INTO employees VALUES (11391, 'Gilabert Pascual', 260312, 'La Mallola', 3, 'gpascual@totmillor.com');
INSERT INTO employees VALUES (18301, 'Irda Loarca', 42783.49, 'Piera', 5, 'iloarca@totmillor.com');

INSERT INTO suppliers VALUES (1, 'Electronic Import SA', 'Calle C. Pol Famades', 'Cornella', '9312341234', 'eimport@hotmail.com', 3402);
INSERT INTO suppliers VALUES (2, 'Casa Cómoda, SL', 'Via Laietana, 34', 'Barcelona', '93321321', 'eugenio1968@gmail.com', 32);
INSERT INTO suppliers VALUES (3, 'Sony Espanya, SA', 'Sabino de Arana, 42', 'Barcelona', '+3493987987', 'comandes@sony.es', 4528);
INSERT INTO suppliers VALUES (4, 'HP Ibérica', 'Vicente Aleixandre, 1', 'Las Rozas', '93 765 567', 'info@hp-es.com', 196);
INSERT INTO suppliers VALUES (5, 'Casa Mueble', 'c/ Ramon Llull, 14', 'Igualada', '93127845', 'casamueble@casamueble', 32);
INSERT INTO suppliers VALUES (6, 'RollerBlade Spain', 'Icaria, 114', 'Barcelona', '93538574', 'spain@rollerblade.com', 2113);
INSERT INTO suppliers VALUES (7, 'Salomon Snow', 'Avda. Nova, 43', 'Girona', '+34 973856439', 'info-spa@salomon.net', 2113);
INSERT INTO suppliers VALUES (8, 'Fagor Electro, SA', 'c/ del Coure, 15', 'Constantí', '977239876', 'blanca@fagor.es', 4528);

INSERT INTO products VALUES (1, 'Fitness 90mm femme', 'Patí in-line fitness 38', 159.90, 6, 1);
INSERT INTO products VALUES (2, 'Ski Carving 1000', 'Ski corto 1m', 189.99, 7, 1);
INSERT INTO products VALUES (3, 'Casc Ski integral', 'Extrem endurance integral', 129.4, 7, 1);
INSERT INTO products VALUES (4, 'Casc in-line City', 'Femme Superigual', 99.99, 6, 1);
INSERT INTO products VALUES (5, 'Maraton 100-110 carbono', 'SuperPro Maraton 400gr', 690.90, 6, 1);
INSERT INTO products VALUES (6, 'Placa inducció 2f', 'Inducción 4000w 2f negre', 419.40, 1, 3);
INSERT INTO products VALUES (7, 'Nevera encastrable', 'Panelable 1,6m AAA', 493.23, 1, 3);
INSERT INTO products VALUES (8, 'Lavavajillas white' ,'Para columna 120x60', 580.90, 1, 3);
INSERT INTO products VALUES (9, 'Triturador Teka', 'Bajo fregadero eléctrico 4cv', 286.60, 1, 3);
INSERT INTO products VALUES (10, 'Extractor no-noise', 'Doble motor alógeno', 360.99, 1, 3);
INSERT INTO products VALUES (11, 'Lavadora-secadora 8kg AAA', 'DirectDrive 5 años garantía', 859.90, 1, 3);
INSERT INTO products VALUES (12, 'Congelador 80cm', 'Para columna 80x60', 288.90, 1, 3);
INSERT INTO products VALUES (13, 'Ordenador ARM 7 LED', 'Portátil Windows CE 4Gb', 119.99, 4, 4);
INSERT INTO products VALUES (14, 'Impresora láser color', '20ppm duplex red', 324.20, 4, 4);
INSERT INTO products VALUES (15, 'Plotter injección high speed', 'Cartucho prof. gran formato', 1387.40, 4, 4);
INSERT INTO products VALUES (16, 'Ord. portátil eight-core', 'low volt. AMD 4.50Ghz LED 8h aut.', 399.99, 4, 4);
INSERT INTO products VALUES (17, 'Hamaca dos puntos', 'Blanca trenzada sintética', 39.90, 2, 2);
INSERT INTO products VALUES (18, 'Silla nido', 'Colfante basculante, pie 80Kg', 474.1, 2, 2);
INSERT INTO products VALUES (19, 'Mesa bambú 6 personas', 'Centre vidrio oscuro, exterior', 639.99, 2, 2);
INSERT INTO products VALUES (20, 'Silla bambú', 'Para exterior, no brazos', 126.6, 2, 2);
INSERT INTO products VALUES (21, 'Taburete bambú', 'Para exterior, 40 cm', 79, 2, 2);

INSERT INTO Orders VALUES (1, '2011-04-15', 2, 112.30);


INSERT INTO Orders VALUES (1, '2011-02-29', 2, 111.98);
INSERT INTO Orders VALUES (2, '2011-03-04', 3, 165.5);
INSERT INTO Orders VALUES (3, '2011-03-04', 2, 98.5);
INSERT INTO Orders VALUES (11, '2010-12-28', 1, 760);
INSERT INTO Orders VALUES (14, '2011-03-07', 2, 279.86);
INSERT INTO Orders VALUES (16, '2011-03-07', 1, 398.99);
INSERT INTO Orders VALUES (17, '2011-03-07', 15, 19.99);
INSERT INTO Orders VALUES (18, '2011-03-07', 1, 401.34);
INSERT INTO Orders VALUES (19, '2011-03-07', 1, 487.62);
INSERT INTO Orders VALUES (20, '2011-03-07', 6, 93.69);
INSERT INTO Orders VALUES (9, '2011-03-14', 1, 236.22);
INSERT INTO Orders VALUES (10, '2011-03-14', 1, 287.63);
INSERT INTO Orders VALUES (11, '2011-03-14', 1, 769.32);
INSERT INTO Orders VALUES (12, '2011-03-14', 2, 254.87);
INSERT INTO Orders VALUES (7, '2011-03-14', 2, 412.57);
INSERT INTO Orders VALUES (6, '2011-03-14', 1, 368);
INSERT INTO Orders VALUES (5, '2011-03-07', 1, 530.89);
INSERT INTO Orders VALUES (2, '2011-03-31', 1, 163.75);

/* d1.- Obtener el nombre y el número de aquellos empleados que son de Barcelona y


que trabajan en el departamento denominado DEPORTES.*/

SELECT e.id_employee, e.employee_name


FROM Employees e
JOIN Departments d ON e.department_emp = d.id_department
WHERE e.city_empl = 'Barcelona' AND d.department_name = 'Deportes';

/*d2.- Obtener el número y el nombre de los proveedores que han servido productos con un precio de
coste inferior a 100 euros y que tienen como empleados de contacto, a empleados que viven en Igualada. */

SELECT s.id_supplier, s.supplier_name


FROM Suppliers s
JOIN Employees e ON s.employee_contact = e.id_employee
JOIN Products p ON s.id_supplier = p.supplier
JOIN Orders o ON p.id_product = o.id_product
WHERE o.cost_price < 100
AND e.city_empl = 'Igualada';

/*d3.- Obtener los nombres y el identificador de los proveedores a los que


no se les haya hecho nunca un pedido. */
SELECT id_supplier, supplier_name
FROM Suppliers
WHERE id_supplier NOT IN (
SELECT DISTINCT supplier
FROM Products
INNER JOIN Orders ON Products.id_product = Orders.id_product
);

/* d4.- Obtener los tres productos que más hayan sido pedidos durante el primer trimestre de 2011. Se desea recuperar su identificador, el
nombre, la cantidad de unidades pedidas, el nombre de su proveedor, el departamento al que pertenecen los productos
y el beneficio que representaría para la empresa la venta de cada grupo de estos productos 'top-tres'.*/

SELECT p.id_product, p.product_name, SUM(o.quantity) AS total_quantity, s.supplier_name, d.department_name, SUM(o.quantity * (p.retail_price -


o.cost_price)) AS profit
FROM Products p
JOIN Orders o ON p.id_product = o.id_product
JOIN Suppliers s ON p.supplier = s.id_supplier
JOIN Departments d ON p.department = d.id_department
WHERE o.date >= '2011-01-01' AND o.date <= '2011-03-31'
GROUP BY p.id_product
ORDER BY total_quantity DESC
LIMIT 3;

You might also like