Está en la página 1de 5

Base de datos

Base de datos (Laboratorio)


Desarrollo del tema Nº 08
Logros:
- Implementar sentencias de recuperación usando combinaciones internas (INNER JOIN); así
como parámetros de entrada.
- Propone una solución alterna a la solución presentada por el docente.

CASO: VENTAS2017
El script de la base de datos debe descargar de Moodle:

CONSULTAS MULTITABLA

1. Se pide listar código del cliente, nombres, apellidos y nombre del distrito de procedencia.
Nos damos cuenta que los datos provienen de DOS tablas.

Elaborado por: Equipo de Docentes Pág. 1


Base de datos

Es aquí donde combinamos a estas tablas para mostrar los datos.

En esta combinación, debemos identificar: ¿Qué campos de ambas tablas se combinan?

PK

FK

El script para la combinación interna, sería de la siguiente manera:


SELECT CL.ID_CLIENTE,
CL.NOMBRES,
CL.APELLIDOS,
D.NOMBRE_DISTRITO
FROM CLIENTE AS CL INNER JOIN DISTRITOS AS D

ON D.ID_DISTRITO = CL.ID_DISTRITO

2. Se pide listar nombres del cliente, apellidos, número de boleta con las cuáles ha comprado y
los productos que han comprado en esa boleta.

Podemos darnos cuenta que los datos provienen de 4 tablas:


CLIENTE (Id_cliente, nombres, apellidos)
BOLETA (Num_boleta, Id_cliente)
DETALLEBOLETA (Num_boleta, id_producto)
PRODUCTO (Id_producto, descripción)

Elaborado por: Equipo de Docentes Pág. 2


Base de datos

El script para la combinación interna, sería de la siguiente manera:


SELECT CL.ID_CLIENTE,
CL.NOMBRES,
CL.APELLIDOS,
B.NUM_BOLETA,
P.DESCRIPCION
FROM CLIENTE AS CL INNER JOIN BOLETA AS B
ON CL.ID_CLIENTE = B.ID_CLIENTE
INNER JOIN DETALLEBOLETA AS DB
ON B.NUM_BOLETA = DB.NUM_BOLETA
INNER JOIN PRODUCTO AS P
ON DB.ID_PRODUCTO = P.ID_PRODUCTO

3. Crear un procedimiento almacenado que muestre todos los registros de la tabla detalle boleta,
pero de aquellos detalles que su importe sea mayor a 300, mostrando el nombre del producto.

Aquí, muestra la forma en que se ejecuta el procedimiento almacenado.

Elaborado por: Equipo de Docentes Pág. 3


Base de datos

NOTA: Los siguientes casos desarrolla el Docente con los estudiantes utilizando la Base de
Datos VENTAS2017.

CONSULTAS UTILIZANDO COMBINACIONES INTERNAS

1. Mostrar todos los registros de la tabla productos; así como el nombre de categoría.

2. Mostrar los campos codigo del empleado, nombres, apellidos, sueldo básico, fecha de
ingreso; así como el nombre del cargo y nombre del distrito. Utilice Alias para las tablas y
cambie el encabezado de las columnas.

3. Mostrar los campos num_boleta de la tabla detalle boleta, descripción del producto,
precio_venta, cantidad de detalle boleta, importe de la tabla detalle boleta; pero sólo aquellos
registros cuya cantidad se encuentre entre 5 y 25.

4. Mostrar los campos num_boleta, Nombre del cliente, Apellidos, el día, el mes y el año en que
se realizó la venta por separado, de aquellos registros donde el año es mayor a 2010.
Ordénalos de forma ascendente por codigo de cliente. Utilizar Alias y Sentencias Day, Month
y Year.

5. Mostrar todos los campos de la tabla cliente a excepción de los clientes del distrito de
Cercado y Los Olivos y que hayan comprado productos cuya descripción comienza con la
letra A cantidad>=2. Utilizar alias, operadores de comparación y operador lógico NOT.

6. Visualizar el nombre del cliente, apellidos, número de boleta, descripción del producto
comprados, cantidad y fecha de emisión de todos aquellos clientes cuya segunda letra de
apellidos sea A.
PROCEDIMIENTOS ALMACENADOS UTILIZANDO:
 COMBINACIONES INTERNAS
 CON UN PARÁMETRO DE ENTRADA

1. Crear un procedimiento almacenado con el nombre sp_ClientesxDistrito que permita


mostrar codigo del cliente, nombres, apellidos, dirección y nombre del distrito. El
procedimiento debe mostrar solo los clientes que viven en un distrito específico. El parámetro
de entrada será para el nombre del distrito.

2. Crear un procedimiento almacenado con el nombre sp_Ventas_ProductosxCliente que


permita mostrar todos los productos comprados por cierto cliente. El parámetro de entrada
será para el nombre del cliente.

3. Crear un procedimiento almacenado con el nombre sp_empleadosxCargo que permita


mostrar todos los empleados de un cargo especifico. Pasar el parámetro al nombre del cargo.

4. Crear un procedimiento almacenado con el nombre sp_BoletaxEmpleado que permita


mostrar número de boleta, fecha de emisión y estado boleta que ha emitido un empleado
específico. Pasar el parámetro de entrada al nombre del empleado. Validar, si el empleado
existe que se muestre los datos correspondientes; caso contrario que se imprima “No existe
empleado”

Elaborado por: Equipo de Docentes Pág. 4


Base de datos

5. Crear un procedimiento almacenado con el nombre usp_BoletaxCliente que permita


mostrar todas las boletas que pertenecen a un cliente específico. Pasar el parámetro al
nombre del cliente.

PROCEDIMIENTOS ALMACENADOS UTILIZANDO:


 COMBINACIONES INTERNAS
 CON DOS O MÁS PARÁMETROS DE ENTRADA

6. Crear un procedimiento almacenado con el nombre sp_VentasXaños que permita mostrar


número de boleta, fecha de emisión, nombre y apellidos del cliente de un rango de años.
Para ello debe pasar 2 parámetros de entrada aini (año inicial) y afin (año final).

7. Crear un procedimiento almacenado con el nombre sp_VentasXBoleta que permita mostrar


los datos de los productos que se adquirieron en una boleta. El usuario ingresará 2
parámetros de entrada para el campo número de boleta.

Ejemplo:
EXECUTE usp_VentasXBoleta '10000001', '10000005'
GO

8. Crear un procedimiento almacenado con el nombre sp_productosxCategoria que permita


mostrar todos los productos que pertenecen a 2 categorías diferentes. Pasar 2 parámetros
cat1 y cat2.

9. Crear un procedimiento almacenado con el nombre sp_Productos_x_año_venc que


permita mostrar código, descripción, precio de venta, fecha de vencimiento y nombre de
categoría para aquellos productos que vencen en un rango de años. Pasar 2 parámetros an1
y an2.

10. Crear un procedimiento almacenado con el nombre sp_emplexNivel_EstCivil_anno_ing


que permita mostrar todos los empleados que pertenecen a un nivel de educación y estado
civil y año de ingreso específico. Pasar 3 parámetros @nivel, @estacivil y @añoingreso.

11. Crear un procedimiento almacenado con el nombre sp_EmpleadosxCargoDistrito que


permita mostrar todos los empleados que pertenecen a un cargo y distrito especifico. Pasar
el parámetro al nombre del cargo y nombre del distrito.

Elaborado por: Equipo de Docentes Pág. 5

También podría gustarte