7
Sistema de Información Administrativo Tarea ayudantía 14-05-2012 PROFESOR CRISTIAN SALAZAR AYUDANTE JOSE CARRASTO ALUMNO JOSE LUIS ALVARDO 1

Ayudantia 14 05

Embed Size (px)

Citation preview

Page 1: Ayudantia 14 05

Sistema de Información Administrativo

Tarea ayudantía 14-05-2012

PROFESOR

CRISTIAN SALAZAR

AYUDANTE

JOSE CARRASTO

ALUMNO

JOSE LUIS ALVARDO

1

Page 2: Ayudantia 14 05

Laboratorio 14-05-2012

1) Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de

sus préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los

campos a mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso.

Ayuda: Usar la fecha del sistema denominada por SYSDATE, y usar la función

TRUNC para quitar las horas, minutos y segundos de las fechas.

select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as

ATRASO

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

2) Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero

agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para

multiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B.

select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as

ATRASO, (trunc(sysdate) - trunc(p.fecha_e))*1250 as DEUDA

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

3) Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para

hacer la suma se usa la función SUM y la función GROUP BY.

Page 3: Ayudantia 14 05

select SUM (trunc(sysdate) - trunc(p.fecha_e))*1250 AS INGRESO_BIBLIO

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

4) Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para

calcular el promedio se usa la función AVG y la función GROUP BY.

select ROUND(AVG ((trunc(sysdate) - trunc(p.fecha_e))*1250)) AS PROM_DEUDA

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

5) Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la

función GROUP BY.

select MIN ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

6) Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la

función GROUP BY.

select MAX ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA

from prestamo p, estudiantes e, libros l

Page 4: Ayudantia 14 05

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate) > trunc(p.fecha_e)

7) Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus

libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una

fecha se hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a

sumar y FECHA es la fecha a la cual le estamos sumandos días. Para el caso de la

fecha de hoy, sería SYSDATE + N.

select SUM((trunc(sysdate+4) - trunc(p.fecha_e))*1250) AS DEUDA_4_DIAS

from prestamo p, estudiantes e, libros l

where p.rut_est = e.rut_est

and p.cod_libro = l.cod_libro

and trunc(sysdate+4) > trunc(p.fecha_e)

8) En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y

otra llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo

análisis de cada parte de la consulta. Ayuda: Busque información sobre Sub-Consultas.

La sub-consulta Max y Min muestra lo siguiente:

MAX: Esta consulta muestra el rut, apellido, nombre y titulo de del libro de la persona que

deba la mayor cantidad de dinero en biblioteca por atraso en la entrega (Este valor es

sacado con la diferencia entre la fecha actual y fecha entrega de la tabla prestamos).

MIN: Esta consulta muestra el rut, apellido, nombre y titulo de del libro de la persona que

deba la menor cantidad de dinero en biblioteca por atraso en la entrega (Este valor es

sacado con la diferencia entre la fecha actual y fecha entrega de la tabla prestamos).

Page 5: Ayudantia 14 05

9) Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que

tiene libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY.

select COUNT(e.rut_est), c.nombre

from prestamo p, estudiantes e, carreras c

where p.rut_est = e.rut_est

AND e.id_carrera = c.id_carrera

and trunc(sysdate) > trunc(p.fecha_e)

group by c.nombre

10) Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un

libro en préstamo ya sea atrasado o al día.

select COUNT(e.rut_est), c.nombre

from prestamo p, estudiantes e, carreras c

where p.rut_est = e.rut_est

AND e.id_carrera = c.id_carrera

group by c.nombre

11) Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo.

Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY.

select * from (

select COUNT(e.rut_est), c.nombre

from prestamo p, estudiantes e, carreras c

where p.rut_est = e.rut_est

AND e.id_carrera = c.id_carrera

group by c.nombre

Page 6: Ayudantia 14 05

order by COUNT(e.rut_est) desc)

where rownum <=10