tarea 2

6
Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Instituto de Administración Escuela de Ingeniería Comercial ADMI 273 Tarea N° 2.- Curso: Sistema de Información Empresarial Profesor: Cristian Salazar Ayudante: José Luis Daniel Carrasco Integrante: Diego Nauto C.

Upload: diego-nauto

Post on 29-May-2015

152 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Tarea 2

Universidad Austral de ChileFacultad de Ciencias Económicas y Administrativas

Instituto de AdministraciónEscuela de Ingeniería Comercial

ADMI 273

Tarea N° 2.-

Curso: Sistema de Información Empresarial Profesor: Cristian Salazar

Ayudante: José Luis Daniel Carrasco

Integrante:

Diego Nauto C.

Valdivia, 21 de Mayo de 2012.

ADMI273-ADMI273 Universidad Austral de Chile.

Page 2: Tarea 2

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 ATRASOfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand 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 DEUDAfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand 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.

select SUM (trunc(sysdate) - trunc(p.fecha_e))*1250 AS INGRESO_BIBLIOfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand 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_DEUDAfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand trunc(sysdate) > trunc(p.fecha_e)

Page 3: Tarea 2

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_DEUDAfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand 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_DEUDAfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand 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_DIASfrom prestamo p, estudiantes e, libros lwhere p.rut_est = e.rut_estand p.cod_libro = l.cod_libroand trunc(sysdate+4) > trunc(p.fecha_e)

Page 4: Tarea 2

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 imagen ilustrada en la tarea (“Creating View Maximos”), nos permite ver que el Rut esta separado del nmbre y apellido, como comúnmente los vemos.

También vemos al alumno con días de atraso y el dinero que tiene que cancelar por su correspondiente atraso.

Vemos además que entrega el libro que esta en atrasado en el correspondiente préstamo.

Finalmente a través de varias consultas y sub-consultas, se llegan a como estas forman, el nombre, apellido del estudiante.

Page 5: Tarea 2

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.nombrefrom prestamo p, estudiantes e, carreras cwhere p.rut_est = e.rut_estAND e.id_carrera = c.id_carreraand 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.nombrefrom prestamo p, estudiantes e, carreras cwhere p.rut_est = e.rut_estAND e.id_carrera = c.id_carreragroup 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.nombrefrom prestamo p, estudiantes e, carreras cwhere p.rut_est = e.rut_estAND e.id_carrera = c.id_carreragroup by c.nombreorder by COUNT(e.rut_est) desc)where rownum <=10