Vous êtes sur la page 1sur 9

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


AREA DE SISTEMAS Y TELEMATICA

Tercer Laboratorio Calificado

CURSO: TALLER DE HERRAMIENTAS DE SOFTWARE


SECCION : Ciclo 2018-1 FECHA : 22 de Mayo del 2018
NOMBRE DEL ALUMNO: HANS MARTIN ACHA CARRANZA

Muy Importante: LEER BIEN LAS INDICACIONES


1) La Tercera Practica Calificada es sobre 15 puntos , dado que la práctica dirigida correspondiente tiene una nota
máxima de 5 puntos.

2) Antes de ejecutar las instrucciones de creación de tablas, Ud. debera crear una base de datos con la inicial de su
primer nombre, primer Apellido seguido de P3 y el número de pregunta ejemplo si el alumno se llama Juan Pérez y
responde a la pregunta 1; la B.D se llamara JPerezP31 y luego se ubicara en esta B.D para resolver la pregunta
respectiva.
3) La creación y el poblamiento de tablas no es necesario incluir como respuesta a la practica,
y no hay puntaje para este paso previo requerido, recuerde que en la practica se califica
solo la solución a las consultas.
4) Todas las respuestas deben mostrar las instrucciones sql con los resultados desde su propia Base de datos que
indique la pregunta (pegar la pantalla que se obtiene cuando se ejecuta las instrucciones sql y en el caso de las
consultas deberá mostrar primero la consulta genérica y luego la consulta solicitada
(el antes y el después).
5) No se validara las respuestas con el resultado mostrado desde otra Base de Datos o que solo muestre la instrucción
sql.
6) Finalizada la practica se debe guardar el documento con el formato siguiente:
Lab03_(inicial primer nombre)(apaterno)(inicial amaterno).doc
(No se aceptaran soluciones en otro formato de documento ni enviada de otra manera)

7) Para validarse la respuesta a la pregunta; se reitera que es necesario mostrar los comandos correspondientes desde su
propia base de datos.
Según corresponda a la pregunta , cada respuesta se debe mostrar siempr primero el resultado de la consulta
genérica a la Tabla solicitada y a continuación el query o comando que me mostrara el resultado de la consulta
especifica (minimo se deben mostrar 3 elementos de respuesta por cada consulta especifica)

Parte I) En la B. D Edumatica (Total 7 puntos),

Actualizar las tablas Alumnos, profesores y empleados con lo siguiente:


a. A la tabla Alumnos, empleados y profesores añada el atributo fecha de nacimiento
b. A la tabla empleados añada el campo fecha de contratación .

Actualizar las filas respectivas, añadiendo los atributos requeridos Deberá ingresar tuplas, de
forma conveniente a fin de obtener siempre resultados en las consultas planteadas
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

Consultas a la BD Edumatica

1. Mostrar a los empleados indicando su Tiempo de Servicio (expresado en años y meses)

select NomEmpleado,ApeEmpleado,
CAST(DATEDIFF(YEAR,FecInEmpleado,GETDATE()) AS VARCHAR(20))+
' AÑOS CON '+CAST((DATEDIFF(MONTH,FecInEmpleado,GETDATE()))%12 AS VARCHAR(20))
' MESES' as 'Tiempo de servicio' from Empleado
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

2. Mostrar a los alumnos indicando su edad (Solo en años)

select NomAlumno,ApeAlumno,
CAST(DATEDIFF(YEAR,FecNacAlumno,GETDATE()) AS VARCHAR(20))+
' AÑOS' as 'EDAD' from Alumno

3. Mostrar un reporte de los alumnos y profesores que el dia de hoy (22 de mayo) celebren su
cumpleaños
select NomAlumno,ApeAlumno,FecNacAlumno from Alumno
WHERE MONTH(FecNacAlumno)=5 AND DAY(FecNacAlumno)=22
select NomProfesor,ApeProfesor,FecNacProfesor from Profesor
WHERE MONTH(FecNacProfesor)=5 AND DAY(FecNacProfesor)=22
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

4. Obtener un reporte que me muestre a los empleados que cumplan años en octubre

select NomEmpleado,ApeEmpleado,FecNacEmpleado from Empleado


WHERE MONTH(FecNacEmpleado)=10

5. Mostrar un reporte en el que se muestren los cursos y la cantidad de matriculados.


asi como los cursos en el que aun no se hayan matriculado , se muestra un reporte ejemplo

Nombre del curso Nro de matriculados


=============== =============

Física I 10

Sistemas Distribuidos -

Teoría de Sistemas 3

Tesis I 8

6. Mostrar un reporte de cursos programados para el presente ciclo (2018-1) con el siguiente
formato
NOMBRE DEL CURSO PROFESOR QUE LO DICTAN PRECIO DEL CURSO (TARIFA) NRO DE VACANTES NRO DE MATRICULADOS
=============== ===================== =================== ============= ================

Inteligencia de Negocios Juan Bautista 200 15 12

Marketing Digital María Álvarez 180 12 7

……..
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

7. En la B.D Edumatica elaborar y ejecutar un procedimiento almacenado que me permita obtener la


cantidad de alumnos, profesores y empleados que existen en la B.D
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

Parte II) Trabajar con la B.D Market (el script se adjunta en la sesión) según el diagrama mostrado

Deberá ingresar tuplas, de forma conveniente a fin de obtener resultados en las consultas especificas
solicitadas (Total 8 puntos):

Consultas a la BD Market

a. Mostrar los pedidos cuyo mes de Pedido sea Mayo y deberá mostrar la fecha de pedido
y la fecha de pago (que será a los 8 dias de la fecha de pedido) (2 puntos)

SELECT Pedidos.OrderId,Clientes.CompanyName,Country.CountryDescription,
Employee.LastName+' '+Employee.Firstname AS 'VENDEDOR',
CONVERT(VARCHAR(12),Pedidos.OrdenDate,103) AS 'FECHA ORDEN',
CONVERT(VARCHAR(12),DATEADD(DAY,8,Pedidos.OrdenDate),103)
AS 'FECHA DE PAGO' FROM Pedidos
INNER JOIN Clientes ON Pedidos.CustomerId=Clientes.CustomerId
INNER JOIN Employee ON Pedidos.EmployeeId=Employee.EmployeeId
INNER JOIN Country ON Country.CountryId=Clientes.CountryId

b. Mostrar el total de clientes que tiene Market en cada pais según muestra el reporte
ejemplo (2 puntos)

País Clientes
Chile 1
Ecuador 3
Bolivia 2
Colombia 2
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

SELECT Country.CountryDescription AS 'PAÍS',


COUNT(*) AS 'CLIENTES' FROM Clientes
INNER JOIN Country ON Country.CountryId=Clientes.CountryId
GROUP BY Country.CountryDescription

c. Mostrar la cantidad de empleados, clientes y productos que tiene Market en total.


(1 punto)

SELECT COUNT(*) AS 'CANTIDAD DE EMPLEADOS' FROM Employee


SELECT COUNT(*) AS 'CANTIDAD DE PRODUCTOS' FROM Producto
SELECT COUNT(*) AS 'CANTIDAD DE CLIENTES' FROM Clientes
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

d. Mostrar el reporte de empleados conteniendo la siguiente información según el ejemplo


adjunto (1 punto)

Apellido Empleado Nombre Jefe Inmediato Area Edad Tiempo de


Empleado servico)
Pérez Juan Florez Ana Ventas 35 5
Maguill Patricia Suarez Juan Logística 24 2
Florez Ana Vega Aldo Ventas 45 3
Juan Suarez Vargas Adamo Logística 1
Adamo Vargas Romero Pedro Gerencia 48 2
Administrativa
Romero Pedro Gerente 52 1
General

SELECT LastName AS 'APELLIDO EMPLEADO',


Firstname AS 'NOMBRE EMPLEADO',
(SELECT LastName+' '+Firstname FROM Employee B WHERE A.ReportTo=B.EmployeeId)
AS 'JEFE INMEIDATO',Title AS 'AREA',
DATEDIFF(YEAR,BirthDate,GETDATE()) AS 'EDAD',
DATEDIFF(YEAR,HireDate,GETDATE()) AS 'TIEMPO DE SERVICIO' FROM Employee A
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
AREA DE SISTEMAS Y TELEMATICA

e. Crear y ejecutar una transaction que me permita actualizar los precios disminuyendo en
un 10% a los productos que pertenezcan a la categoria electrodomesticos por la
campaña "Rusia 2018", deberá observar las rutas de exito y de error en caso se
presente. (2 puntos)

DECLARE @Error int


BEGIN TRAN
UPDATE Producto SET UnitPrice=UnitPrice*0.9 WHERE CategoryId =
(SELECT CategoryId FROM Categorias WHERE CategoryName='electrodomesticos')
SET @Error=@@ERROR
IF (@Error<>0)
PRINT 'Ha ecorrido un error. Abortamos la transacción'

SELECT * FROM Producto WHERE CategoryId =


(SELECT CategoryId FROM Categorias WHERE CategoryName='electrodomesticos')

Vous aimerez peut-être aussi