Sunteți pe pagina 1din 8

Actividad 2.

Ayudanta: Lab 13_05: Consultas con Clculos

Sistema de Informacin Administrativa

Profesor Responsable: Cristian Salazar Ayudante: Jose Luis Carrasco

Alumna: Nidia Manrquez Sols

Actividad Supuestos: La base de datos no guarda el histrico de los prstamos realizados, es decir, que al entregar un libro, ese prstamo se elimina de la tabla PRESTAMO.

1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus prstamos de libros, e indicar la cantidad de das de atraso para cada prstamo. Los campos a mostrar son: Rut del estudiante, Nombres, Apellidos y el N de das de atraso. Ayuda: Usar la fecha del sistema denominada por SYSDATE, y usar la funcin TRUNC para quitar las horas, minutos y segundos de las fechas. SQL: Select e.rut_est "RUT_ESTUDIANTE", e.nombres, e.apellidos, trunc(sysdate)- p.fecha_e "N_DIAS_ATRASO" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

2.- Si cada da 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, sera A*B. SQL: Select e.rut_est "RUT_ESTUDIANTE", e.nombres, e.apellidos, trunc(sysdate)- p.fecha_e "N_DIAS_ATRASO", (trunc(sysdate)- p.fecha_e) * 1250 deuda_atrazo From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

3.- Entregue la suma de dinero que ganar la Biblioteca acumulada al da de hoy. Ayuda: Para hacer la suma se usa la funcin SUM y la funcin GROUP BY. SQL: Select sum((trunc(sysdate)- p.fecha_e) * 1250) "Dinero_recaudado" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

4.- Entregue el promedio de deuda que tienen los estudiantes al da de hoy. Ayuda: Para calcular el promedio se usa la funcin AVG y la funcin GROUP BY. SQL: Select trunc(avg((trunc(sysdate)- p.fecha_e) * 1250)) "Promedio_dinero_recaudado" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

5.- Entregue la mnima deuda acumulada al da de hoy. Ayuda: Utilice la funcin MIN y la funcin GROUP BY. SQL: Select min((trunc(sysdate)- p.fecha_e) * 1250) "Deuda_minima" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

6.- Entregue la mxima deuda acumulada al da de hoy. Ayuda: utilice la funcin MAX y la funcin GROUP BY. SQL: Select max((trunc(sysdate)- p.fecha_e) * 1250) "Deuda_maximo" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

7.- Suponiendo que ninguno de los estudiantes que se encuentran con prstamo entrega sus libros, cual ser la deuda acumulada para 4 das ms. Ayuda: Para sumar un das a una fecha se hace de la siguiente forma: FECHA + N, donde N es la cantidad de das a sumar y FECHA es la fecha a la cual le estamos sumandos das. Para el caso de la fecha de hoy, sera SYSDATE + N. SQL: Select e.rut_est "RUT_ESTUDIANTE", e.nombres, e.apellidos, trunc(sysdate + 4)p.fecha_e "N_DIAS_ATRASO" From estudiantes e, prestamo p, libros l Where p.rut_est = e.rut_est And p.cod_libro = l.cod_libro And p.fecha_e < sysdate

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 anlisis de cada parte de la consulta. Ayuda: Busque informacin sobre Sub-Consultas. La vista MAXIMO muestra los datos (nombre y rut) de los estudiantes que tienen ms das de atraso en la entrega de libros prestado, sealando el titulo del libro y el monto de dinero adeudado a la fecha por el atraso. Dando como resultado un estudiante que adeuda $25.000. La vista MINIMO muestra los datos (nombre y rut) de los estudiantes que tienen el mnimo de das de atraso en la entrega de libros prestado, sealando el titulo del libro y el monto de dinero adeudado a la fecha por el atraso. El resultado son 51 alumnos que adeudan $1250.

9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene libros atrasados. Ayuda: Use la funcin COUNT y la funcin GROUP BY. SQL: Select c.nombre, count((trunc(sysdate)- p.fecha_e) ) "cant_estudiante" From carreras c, estudiantes e, prestamo p Where p.rut_est = e.rut_est And c.id_carrera = e.id_carrera Group by c.nombre

10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro en prstamo ya sea atrasado o al da. SQL: Select l.cod_libro,count(p.rut_est) "cant_est_atrasados" From libros l, prestamo p Where l.cod_libro = p.cod_libro Group by l.cod_libro

11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en prstamo. Ayuda: Se usa un tipo de funcin llamada ROWNUM y la funcin ORDER BY. Vista: create or replace view carreras_atraso as Select c.nombre, count((trunc(sysdate)- p.fecha_e) ) "cant_estudiante" From carreras c, estudiantes e, prestamo p Where p.rut_est = e.rut_est And c.id_carrera = e.id_carrera Group by c.nombre

Consulta: Select * From carreras_atraso Where rownum <= 10 Order by "cant_estudiante" desc;

S-ar putea să vă placă și