Sei sulla pagina 1di 4

EXAMEN DIPLOMADO SQL SERVER – CETI

Tiempo estimado 2 horas

Generar un archivo con extensión SQL con los códigos resultados del examen y enviar al correo
del docente juniorcachay@gmail.com, considerando la base de datos HOSPITAL que se trabajó
en clase.

EJERCICIO 1 (7 ptos)

El área de recursos humanos desea un reporte detallado de los trabajadores de planilla de un


hospital, donde se necesite mostrar el nombre, la sala, el nombre del trabajador, su turno y
salario. Por lo tanto se el DBA debe crear un procedimiento almacenado que solicite el código
del hospital para mostrar los datos indicados. El resultado debe ser por ejemplo:

EJERCICIO 2 (10 ptos)

El área de recursos humanos ha solicitado a sistemas el siguiente diagrama. Usted como DBA
debe de crear un procedimiento almacenado que emita lo siguiente:

EJERCICIO 3 (3 ptos)
Gerencia necesita saber la cantidad de Hombres y Mujeres que existen en la lista de Enfermos.

Docente autor: Mg. Ing. Junior Cachay


SOLUCION1.-

DROP PROCEDURE IF EXISTS pa_ejercicio1;

CREATE PROCEDURE pa_ejercicio1(


p_codigo_hospital INT --Codigo de hospital
)
DEFINE l_hospital VARCHAR(50); -- Nombre de Hospital
DEFINE l_sala VARCHAR(50); -- Nombre de Sala
DEFINE l_nombre VARCHAR(50); -- Nombre de Empleado
DEFINE l_turno VARCHAR(50); -- Turno de empleado
DEFINE l_salario NUMERIC(9,2); -- Salario

DEFINE l_text VARCHAR(1000); -- Variable que almacena consulta.

LET l_hospital = '';


LET l_sala = '';
LET l_nombre = '';
LET l_turno = '';
LET l_salario = 0;

LET l_text = "SELECT


hospt.Nombre,sala.Nombre,plant.Apellido,plant.Turno,plant.Salario"||
"FROM Plantilla AS plant "||
"INNER JOIN Hospital AS hospt ON hospt.Hospital_Cod =
plant.Hospital_Cod"||
"INNER JOIN Sala AS sala ON sala.Hospital_Cod =
hospt.Hospital_Cod"||
"WHERE hospt.Hospital_Cod ="|| p_codigo_hospital;
PREPARE p_sql FROM l_text;
DECLARE c_cur cursor FOR p_sql;
OPEN c_cur;
WHILE ( 1 = 1 )
FETCH c_cur INTO l_hospital,l_sala,l_nombre,l_turno,l_salario;
IF (SQLCODE !=0) THEN
EXIT ;
END IF
IF l_turno = 'M' THEN
LET l_turno = 'MANANA';
END IF
IF l_turno = 'T' THEN

SEGUNDA PROPUESTA DE SOLUCIÓN 1


select H.Hospital_Cod as 'hospital',P.Apellido as 'Tarabajores
planilla',S.Nombre as 'sala' ,S.Nombre as 'Nombre sala' ,H.Nombre
'Nombre hospital',P.T as 'Turno' ,P.Salario from plantilla as P
join sala as S
on S.Sala_Cod=P.Empleado_No
join hospital as H
on H.Hospital_Cod=S.Sala_Cod
WHERE H.Nombre='La Paz';
WHERE Hospital_Cod='22';
Solución 3-

Potrebbero piacerti anche