Sie sind auf Seite 1von 5

Valdivia 21 de Mayo de 2012

Tarea SQL
Sistemas de Informacin Administrativos ADMI-274
Docente: -Cristian Salazar C. -Jos Luis Carrasco V. Estudiante: Karina Espinoza

Desarrollo de consultas Laboratorio 14 de Mayo de 2012

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. 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 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. 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 da de hoy. Ayuda: Para hacer la suma se usa la funcin SUM y la funcin GROUP BY. 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 da de hoy. Ayuda: Para calcular el promedio se usa la funcin AVG y la funcin 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 mnima deuda acumulada al da de hoy. Ayuda: Utilice la funcin MIN y la funcin 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 mxima deuda acumulada al da de hoy. Ayuda: utilice la funcin MAX y la funcin GROUP BY. select MAX ((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)

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

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

10) 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. 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 order by COUNT(e.rut_est) desc) where rownum <=10

Das könnte Ihnen auch gefallen