Vous êtes sur la page 1sur 2

UNT.

Ingeniera Industrial

BASE DE DATOS LABORATORIO SENTENCIAS SQL (SubConsultas)


CLIENTE cliente_id CUENTA Cuenta_Id Sucursal_Id (FK) Banco_Id (FK) SaldoActual SaldoMedio TipoCuenta TipoAmort cliente_id (FK) direccion

PERSONA cliente_id (FK) nombres apellidos EMPLEADO Empleado_Id DNI nombres apellidos fechanac sexo Sucursal_Id (FK) Banco_Id (FK) CIUDAD Ciudad_Id Nombre

ORGANIZACION cliente_id (FK) RazonSocial TipoOrgan_Id (FK)

SUCURSAL Sucursal_Id Banco_Id (FK) CodigoPostal Ciudad_Id (FK)

TIPOORGANIZ TipoOrgan_Id descripcion

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')

UNT. Ingeniera Industrial

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))

8. Obtener los datos de las cuentas que pertenezcan a organizaciones.


select * from CUENTA where cliente_id in (select cliente_id from ORGANIZACION where cliente_id in (select cliente_id from CLIENTE))

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)))))

Vous aimerez peut-être aussi