Académique Documents
Professionnel Documents
Culture Documents
Ingeniera Industrial
PERSONA cliente_id (FK) nombres apellidos EMPLEADO Empleado_Id DNI nombres apellidos fechanac sexo Sucursal_Id (FK) Banco_Id (FK) CIUDAD Ciudad_Id Nombre
BANCO Banco_Id RazonSocial CONTRATO Banco_Id (FK) Empleado_Id (FK) fecha sueldo
Mediante Transact SQL dar solucin a los siguientes requerimientos: 1. Restaurar la base de datos del laboratorio. 2. Obtener el nombre y apellidos del empleado(s) que tengan el sueldo mayor.
select nombres,apellidos from EMPLEADO where DNI in (select DNI from CONTRATO where sueldo = (select MAX(sueldo) from CONTRATO))
3. Obtener el nombre y apellidos del empleado(s) que tengan un solo contrato y la fecha de contrato ms reciente.
select nombres,apellidos from EMPLEADO where DNI in (select DNI from CONTRATO where fecha in (select MAX(fecha) from CONTRATO where DNI in (select DNI from CONTRATO group by DNI having COUNT(DNI)=1)))
4. Actualizar el saldo medio de las cuentas con el promedio de los saldos actuales de las cuentas del banco de razn social banco de crdito.
update CUENTA set saldoMedio= (select AVG(saldoActual) from CUENTA) where banco_id+Sucursal_id in (select banco_id+Sucursal_id from SUCURSAL where banco_id in (select banco_id from BANCO where razon_social='BCP')) update CUENTA set saldoMedio= (select AVG(saldoActual) from CUENTA) where banco_id in (select banco_id from BANCO where razon_social='BCP')
5. Actualizar el sueldo del contrato(s) incrementndole el 10% de aquel contrato que sea el ms antiguo.
UPDATE CONTRATO set sueldo = sueldo*1.1 where fecha = (select MIN(fecha) from CONTRATO)
6. Obtener los nombres y apellidos de los empleados que laboren en sucursales de la ciudad de Trujillo.
select nombres,apellidos from EMPLEADO where Sucursal_id+banco_id in (select Sucursal_id+banco_id from SUCURSAL where ciudad_id in (select ciudad_id from CIUDAD where nombre='trujillo'))
7. Obtener los nombres y apellidos de los empleados que tengan contrato con sueldo mayor al promedio de sueldos de todos los contratos.
select nombres,apellidos from EMPLEADO where DNI in (select DNI from CONTRATO where sueldo > (select AVG(sueldo) from CONTRATO))
9. Obtener los nombres de los clientes que tengan exactamente dos cuentas.
select nombres,apellidos from PERSONA where cliente_id in (select cliente_id from CUENTA group by cliente_id COUNT(*)>2) having
10. Obtener los cdigos de las sucursales en las que haya algn empleado con contrato que tenga el sueldo que represente ms del 10% de la suma de todos los sueldos.
select Sucursal_id from SUCURSAL where Sucursal_id+banco_id in (select Sucursal_id+banco_id from EMPLEADO where DNI in (select DNI from CONTRATO where sueldo > (select SUM(sueldo)*0.1 from CONTRATO where DNI in (select DNI from EMPLEADO where DNI in (select DNI from CONTRATO)))))