16
PRACTICA QUERIS BD1 Ejercicios SQL: 1. Obtenga los nombres de clientes que tienen préstamos con garantías de inmuebles que se encuentran en la zona de “Sopocachi” select a.nombre from cliente a, prestamo b, garantia c where a.ci=b.ci and b.#g=c.#g and lower(a.direccion)='sopocachi' and c.tipo='inmueble' 2. Obtenga el detalle de pagos por cada préstamo que se ha realizado el cliente “alejandro”. select a.nombre,b.nombre_prestamo,d.nro,d.fechaVencimiento,d.capital ,d.interes,d.monto,d.#i from planPago d, cliente a, prestamo b,monto e where a.ci=b.ci and b.#m=e.#m and e.nro=d.nro and lower(a.nombre)='alejandro' 3. Obtenga los montos totales de préstamos otorgados a clientes de la zona “Centro”, los cuales se deben desplegar ordenados en forma descendente por nombre de cliente. select a.nombre,e.monto from cliente a, prestamo b,monto e where a.ci=b.ci and b.#m=e.#m order by (a.nombre)desc

Practica Queris Bd1

Embed Size (px)

DESCRIPTION

d

Citation preview

PRACTICA QUERIS BD1Ejercicios SQL:1. Obtenga los nombres de clientes que tienen prstamos con garantas de inmuebles que se encuentran en la zona de Sopocachi

select a.nombrefrom cliente a, prestamo b, garantia cwhere a.ci=b.ciand b.#g=c.#gand lower(a.direccion)='sopocachi'and c.tipo='inmueble'

2. Obtenga el detalle de pagos por cada prstamo que se ha realizado el cliente alejandro.select a.nombre,b.nombre_prestamo,d.nro,d.fechaVencimiento,d.capital,d.interes,d.monto,d.#ifrom planPago d, cliente a, prestamo b,monto ewhere a.ci=b.ciand b.#m=e.#mand e.nro=d.nroand lower(a.nombre)='alejandro'

3. Obtenga los montos totales de prstamos otorgados a clientes de la zona Centro, los cuales se deben desplegar ordenados en forma descendente por nombre de cliente.

select a.nombre,e.montofrom cliente a, prestamo b,monto ewhere a.ci=b.ciand b.#m=e.#morder by (a.nombre)desc

4. Obtenga los nombres de clientes que tienen prstamos entre 10.000 y 15.000 (Utilice BETWEEN)

select a.nombrefrom cliente a, prestamo b,monto ewhere a.ci=b.ciand b.#m=e.#mand e.monto between 10000 and 15000

5. Obtenga los nombres de clientes que tienen NULL en el atributo fecha de nacimiento.select nombrefrom cliente where fecha is null

6. Obtenga los nombres de clientes que comienzan con G. (para mi P porque no tengo con G)select nombrefrom clientewhere nombre like 'p%'

7. Obtenga los nombres de clientes para los cuales sus nombres concluyen con una A.

select nombrefrom clientewhere nombre like '%a'

8. Obtenga los nombres de clientes que son de la misma ciudad.

select nombrefrom clientewhere lower(ciudad)='oruro'

9. Obtenga los nombres de clientes y el total de sus prstamos menos el 10% para clientes que tiene un rango de prstamos entre 10.000 y 12.000.

select a.nombre,e.monto monto,e.monto-((e.monto*0.10)/100) as "menos el 10 %"from cliente a, prestamo b, monto ewhere a.ci=b.ciand b.#m=e.#mand e.monto between 1000 and 12000

10. Obtenga el total de pagos por prstamo de Juan Prez

select a.nombre,e.monto monto,d.nro,g.fechaVencimiento,d.capital,d.interes,d.monto,d.#ifrom cliente a, prestamo b, monto e,planPago dwhere a.ci=b.ciand b.#m=e.#mand e.nro=d.nroand lower(a.nombre)='alejandro'11. Obtenga el promedio de pagos por prstamo de Juan Prez

select a.nombre,avg(d.monto)from cliente a, prestamo b, monto e,planPago dwhere a.ci=b.ciand b.#m=e.#mand e.nro=d.nroand lower(a.nombre)='alejandro'group by (a.nombre)

12. Obtenga los nombres de los clientes incluyendo su pago mximo y mnimo.

select a.nombre,avg(d.monto),max(d.monto) max,min(d.monto) minimofrom cliente a, prestamo b, monto e,planPago dwhere a.ci=b.ciand b.#m=e.#mand e.nro=d.nroand lower(a.nombre)='alejandro'group by (a.nombre)Utilizando SUB -QUERIES1. Obtenga los nombres de clientes que tienen prstamos mayores al promedio de monto de prstamos

select a.nombrefrom cliente a, prestamo b, monto ewhere a.ci=b.ciand b.#m=e.#mand e.monto> (select avg(monto) from monto )

2. Obtenga los cdigos de garantas presentadas a clientes de la zona Sur

select c.#gfrom cliente a, prestamo b, garantia cwhere a.ci=b.ciand b.#g=c.#gand a.ci in (select ci from cliente where zona='sur' )3. Obtenga los nombres de Oficiales de crdito que han atendido a clientes que viven en Miraflores

select f.nombrefrom cliente a, prestamo b, empleado fwhere a.ci=b.ciand b.#e=f.#eand a.direccion in (select direccion from cliente where direccion='miraflores' )

Utilizando GROUP BY - HAVING1. Obtenga los nombres de oficiales de crdito con el total de prstamos otorgados por ellos, tal que el total sea mayor a 50.000

select f.nombre,sum(e.monto)from cliente a, prestamo b, empleado f,monto ewhere a.ci=b.ciand b.#e=f.#eand e.#m=b.#mgroup by (f.nombre)having sum(e.monto)>5000

2. Obtenga el total de pagos por prstamo por cliente tal que el promedio de pagos sea menor a 500.

select f.nombre,sum(d.monto) as "pagos prestamos",avg(d.monto) as "promedio de pagos" from cliente a, prestamo b, empleado f,monto e,planPago dwhere a.ci=b.ciand b.#e=f.#eand e.#m=b.#mand d.nro=e.nrogroup by (f.nombre)having avg(d.monto)5000

4. Obtenga el total de pagos por prstamo por cliente tal que el promedio de pagos sea menor a 500.

select e.nombre,sum(g.monto)as "pagos prestamos",avg(g.monto) as "promedio de pagos" from cliente c, prestamo p, empleado e,monto m,plan_pago gwhere c.ci=p.ciand p.e#=e.e#and m.m#=p.m#and g.nro=m.nrogroup by (e.nombre)having avg(g.monto)5000

2selecta.Nombre,sum(b.Pagos)as "Pagos Hechos ",avg(b.Pagos) as "Promedio de pagos" from Cliente c, Prestamod, Oficial Creditoa,Pagosb,PlanesPago ewherec.idCliente=d.idClienteandd.idOficialCredito=b.OficialCreditoandb.idOficialCredito=b.idOficialCreditoandb.idPagos=e.idPagosgroup by (a.Nombre)havingavg(b.PagoTotal)