Prueba 3 - DMC - RomaníRenzo

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 4

Prueba 3:

Recomendación:
Utilizar las tablas ya creadas en clase: comercial, pedido y cliente.
Script:
CREATE TABLE cliente (
id INT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
ciudad VARCHAR(100),
categoría INT );

CREATE TABLE comercial (


id INT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
comisión FLOAT);

CREATE TABLE pedido (


id INT PRIMARY KEY,
total float NOT NULL,
fecha DATE,
id_cliente INT NOT NULL,
id_comercial INT NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES cliente(id),
FOREIGN KEY (id_comercial) REFERENCES comercial(id)
);

INSERT INTO cliente VALUES(1, 'Aarón', 'Rivero', 'Gómez', 'Almería', 100);


INSERT INTO cliente VALUES(2, 'Adela', 'Salas', 'Díaz', 'Granada', 200);
INSERT INTO cliente VALUES(3, 'Adolfo', 'Rubio', 'Flores', 'Sevilla', NULL);
INSERT INTO cliente VALUES(4, 'Adrián', 'Suárez', NULL, 'Jaén', 300);
INSERT INTO cliente VALUES(5, 'Marcos', 'Loyola', 'Méndez', 'Almería', 200);
INSERT INTO cliente VALUES(6, 'María', 'Santana', 'Moreno', 'Cádiz', 100);
INSERT INTO cliente VALUES(7, 'Pilar', 'Ruiz', NULL, 'Sevilla', 300);
INSERT INTO cliente VALUES(8, 'Pepe', 'Ruiz', 'Santana', 'Huelva', 200);
INSERT INTO cliente VALUES(9, 'Guillermo', 'López', 'Gómez', 'Granada', 225);
INSERT INTO cliente VALUES(10, 'Daniel', 'Santana', 'Loyola', 'Sevilla', 125);

INSERT INTO comercial VALUES(1, 'Daniel', 'Sáez', 'Vega', 0.15);


INSERT INTO comercial VALUES(2, 'Juan', 'Gómez', 'López', 0.13);
INSERT INTO comercial VALUES(3, 'Diego','Flores', 'Salas', 0.11);
INSERT INTO comercial VALUES(4, 'Marta','Herrera', 'Gil', 0.14);
INSERT INTO comercial VALUES(5, 'Antonio','Carretero', 'Ortega', 0.12);
INSERT INTO comercial VALUES(6, 'Manuel','Domínguez', 'Hernández', 0.13);
INSERT INTO comercial VALUES(7, 'Antonio','Vega', 'Hernández', 0.11);
INSERT INTO comercial VALUES(8, 'Alfredo','Ruiz', 'Flores', 0.05);

INSERT INTO pedido VALUES(1, 150.5, '2017-10-05', 5, 2);


INSERT INTO pedido VALUES(2, 270.65, '2016-09-10', 1, 5);
INSERT INTO pedido VALUES(3, 65.26, '2017-10-05', 2, 1);
INSERT INTO pedido VALUES(4, 110.5, '2016-08-17', 8, 3);
INSERT INTO pedido VALUES(5, 948.5, '2017-09-10', 5, 2);
INSERT INTO pedido VALUES(6, 2400.6, '2016-07-27', 7, 1);
INSERT INTO pedido VALUES(7, 5760, '2015-09-10', 2, 1);
INSERT INTO pedido VALUES(8, 1983.43, '2017-10-10', 4, 6);
INSERT INTO pedido VALUES(9, 2480.4, '2016-10-10', 8, 3);
INSERT INTO pedido VALUES(10, 250.45, '2015-06-27', 8, 2);
INSERT INTO pedido VALUES(11, 75.29, '2016-08-17', 3, 7);
INSERT INTO pedido VALUES(12, 3045.6, '2017-04-25', 2, 1);
INSERT INTO pedido VALUES(13, 545.75, '2019-01-25', 6, 1);
INSERT INTO pedido VALUES(14, 145.82, '2017-02-02', 6, 1);
INSERT INTO pedido VALUES(15, 370.85, '2019-03-11', 1, 5);
INSERT INTO pedido VALUES(16, 2389.23, '2019-03-11', 1, 5);
1.- Devuelve un listado con todos los clientes junto con los datos de los pedidos que han realizado.
Este listado también debe incluir los clientes que no han realizado ningún pedido. El listado debe
estar ordenado alfabéticamente por el primer apellido, segundo apellido y nombre de los clientes.
(5pts)
Considerar los siguientes campos a mostrar:
Cliente: nombre, apellido1, apellido2
Pedido: total, fecha

2. Devuelve un listado con los datos de los clientes y los pedidos, de todos los clientes que han
realizado un pedido durante el año 2017 con un valor mayor o igual al valor de la media o promedio
de los pedidos realizados durante ese mismo año. Mostrar Nombre, Apellidos de los clientes, año,
total del pedido y ordenar el monto del pedido de mayor a menor. (5pts)

3. Devuelve un listado que muestre todos los clientes, con todos los pedidos que han realizado y con
los datos de los comerciales asociados a cada pedido. (5pts)
Crear una vista.
Considerar los siguientes campos a mostrar:
Cliente: Nombre+ Apellido 1+ Apellido 2
Pedido: total, fecha
Comercial: Nombre+Apellido1+Apellido2

4. Devuelve el nombre y los apellidos de todos los comerciales que ha participado en algún pedido
realizado por el cliente María Santana Moreno. La búsqueda debe ser por el nombre del cliente.
Campos por mostrar: nombre y apellido del comercial, total y fecha del pedido y nombre del cliente.
(3pts)

5. Calcula el máximo valor de los pedidos realizados para cada uno de los comerciales con
fecha 2016-08-17. Muestra el identificador del comercial, nombre, apellidos concatenados y total.
(2pts)

Enviar al correo: [email protected]

Asunto: DMC_grupo15_Prueba3_ApellidoNombre

Fecha Máxima de entrega: 27.02.2021 final del día

Nota: Pegar o copiar las consultas y el resultado obtenido en la herramienta SQL


SOLUCION:
1.- select a.apellido1, a.apellido2 ,a.nombre,b.total,b.fecha from cliente a inner
join
pedido b on a.id=b.id order by apellido1,apellido2,nombre

2.- select cli.apellido1, cli.apellido2 ,cli.nombre,pe.total as precio,pe.fecha from


cliente as cli inner join pedido as pe
on cli.id=pe.id_cliente where pe.fecha between '2017-01-01' and '2017-12-31' order by
precio DESC

3.- create view cliente_pedido as


select
ped.total,
ped.fecha,
concat (cli.nombre,' ', cli.apellido1,' ',cli.apellido2) as nombre_cliente,
concat (com.nombre,' ', com.apellido1,' ',com.apellido2) as nombre_comercial
from pedido as ped
inner join cliente as cli on ped.id_cliente=cli.id
inner join comercial as com on ped.id_comercial=com.id
4.-
create procedure cliente_actual @cadena as varchar(10) as
select cli.nombre as NOMBRE_CLIENTE,cli.apellido1 as APE1_CLIENTE,cli.apellido2 as
APE2_CLIENTE, com.apellido1, com.apellido2 ,com.nombre,ped.total,ped.fecha
from pedido as ped
inner join cliente as cli on ped.id_cliente=cli.id
inner join comercial as com on ped.id_comercial=com.id

exec cliente_actual 'Maria'

5.-

También podría gustarte